您的位置:

mysql数据库托从(MySql数据库简介)

本文目录一览:

如何配置两个MySQL数据库之间的主从同步功能?

IP的设置:A主机 IP:10.10.0.119;Mask:255.255.0.0;B主机 IP:10.10.8.112;Mask:255.255.0.0

在IP设置完成以后,需要确定两主机的防火墙确实已经关闭。可以使用命令service iptables status查看防火墙状态。如果防火墙状态。

为仍在运行。使用service iptables stop来停用防火墙。如果想启动关闭防火墙,可以使用setup命令来禁用或定制。最终以两台主机可以相互ping通为佳。

3.2 配置A主(master) B从(slave)模式;3.2.1 配置A 为master。

增加一个用户同步使用的帐号:

GRANT FILE ON *.* TO ‘backup’@'10.10.8.112' IDENTIFIED BY ‘1234’;

GRANTREPLICATION SLAVE ON *.* TO ‘backup’@'10.10.8.112' IDENTIFIED BY ‘1234’。

赋予10.10.8.112也就是Slave机器有File权限,只赋予Slave机器有File权限还不行,还要给它REPLICATION SLAVE的权限才可以。

增加一个数据库作为同步数据库:create database test;

创建一个表结构:create table mytest (username varchar(20),password varchar(20));

修改配置文件:修改A的/etc/my.cnf文件。

在my.cnf配置项中加入下面配置:

server-id = 1 #Server标识

log-bin

binlog-do-db=test #指定需要日志的数据库

重起数据库服务:

service mysqld restart

查看server-id:

show variable like ‘server_id’。

mysql主从数据库不同步的2种解决方法

今天发现Mysql的主从数据库没有同步

先上Master库:

mysqlshow

processlist;

查看下进程是否Sleep太多。发现很正常。

show

master

status;

也正常。

mysql

show

master

status;

+-------------------+----------+--------------+-------------------------------+

|

File

|

Position

|

Binlog_Do_DB

|

Binlog_Ignore_DB

|

+-------------------+----------+--------------+-------------------------------+

|

mysqld-bin.000001

|

3260

|

|

mysql,test,information_schema

|

+-------------------+----------+--------------+-------------------------------+

1

row

in

set

(0.00

sec)

再到Slave上查看

mysql

show

slave

status\G

Slave_IO_Running:

Yes

Slave_SQL_Running:

No

可见是Slave不同步

下面介绍两种解决方法:

方法一:忽略错误后,继续同步

该方法适用于主从库数据相差不大,或者要求数据可以不完全统一的情况,数据要求不严格的情况

解决:

stop

slave;

#表示跳过一步错误,后面的数字可变

set

global

sql_slave_skip_counter

=1;

start

slave;

之后再用mysql

show

slave

status\G

查看:

Slave_IO_Running:

Yes

Slave_SQL_Running:

Yes

ok,现在主从同步状态正常了。。。

方式二:重新做主从,完全同步

该方法适用于主从库数据相差较大,或者要求数据完全统一的情况

解决步骤如下:

1.先进入主库,进行锁表,防止数据写入

使用命令:

mysql

flush

tables

with

read

lock;

注意:该处是锁定为只读状态,语句不区分大小写

2.进行数据备份

#把数据备份到mysql.bak.sql文件

[root@server01

mysql]#mysqldump

-uroot

-p

-hlocalhost

mysql.bak.sql

这里注意一点:数据库备份一定要定期进行,可以用shell脚本或者python脚本,都比较方便,确保数据万无一失

3.查看master

状态

mysql

show

master

status;

+-------------------+----------+--------------+-------------------------------+

|

File

|

Position

|

Binlog_Do_DB

|

Binlog_Ignore_DB

|

+-------------------+----------+--------------+-------------------------------+

|

mysqld-bin.000001

|

3260

|

|

mysql,test,information_schema

|

+-------------------+----------+--------------+-------------------------------+

1

row

in

set

(0.00

sec)

4.把mysql备份文件传到从库机器,进行数据恢复

#使用scp命令

[root@server01

mysql]#

scp

mysql.bak.sql

root@192.168.128.101:/tmp/

5.停止从库的状态

mysql

stop

slave;

6.然后到从库执行mysql命令,导入数据备份

mysql

source

/tmp/mysql.bak.sql

7.设置从库同步,注意该处的同步点,就是主库show

master

status信息里的|

File|

Position两项

change

master

to

master_host

=

'192.168.128.100',

master_user

=

'rsync',

master_port=3306,

master_password='',

master_log_file

=

'mysqld-bin.000001',

master_log_pos=3260;

8.重新开启从同步

mysql

stop

slave;

9.查看同步状态

mysql

show

slave

status\G

查看:

Slave_IO_Running:

Yes

Slave_SQL_Running:

Yes

好了,同步完成啦。

MYSQL数据怎么从一个电脑转移到另一个的电脑

1、找到my.ini文件,里面有一行datadir=...的,就是数据库文件目录,

关掉mysql服务,将这个目录整个拷贝过去

在那边再配my.ini让目录吻合就行了。

2、

把数据库上的资料备份出来,到另外一个数据库还原,有工具PHPMYADMIN;

也可以命令行导出,

利用“mysqldump -u 用户名 -p databasename exportfilename”导出数据库到文件,导入:

进入MySQL Command Line Client,输入密码,进入到“mysql”,输入命令"show databases;",回车,看看有些什么数据库;建立你要还原的数据库,输入"create database voice;",回车;切换到刚建立的数据库,输入"use voice;",回车;导入数据,输入"source voice.sql;",回车,开始导入,再次出现"mysql"并且没有提示错误即还原成功。

怎么把mysql一个数据库从一台机器上 拷贝到另外一台

1、在B机器上装mysql。

将A机器上的mysql/data下的你的数据库目录整个拷贝下来。

将B机器上的mysql服务停止。

找到B机器上的mysql/data目录,将你拷贝的目录粘贴进去,然后启动mysql服务就可以了。

2、使用SQL语句备份和恢复

你可以使用SELECT INTO OUTFILE语句备份数据,并用LOAD DATA INFILE语句恢复数据。这种方法只能导出数据的内容,不包括表的结构,如果表的结构文件损坏,你必须要先恢复原来的表的结构。

语法:

SELECT * INTO {OUTFILE | DUMPFILE} ’file_name’ FROM tbl_name

LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE ’file_name.txt’ [REPLACE | IGNORE]

INTO TABLE tbl_name

SELECT ... INTO OUTFILE ’file_name’