Linux配置mysql主从数据库同步(centos6)

主服务器:IP:192.168.1.100
从服务器:IP:192.168.1.110
mysql版本:mysql-server-5.1.73-8.el6_8.x86_64

一、主服务器相关配置

1、登录主服务器mysql,创建测试数据库newdb,退出mysql。

mysql 	-uroot	 -p
mysql>	create  database  newdb;	
mysql>  exit;

2、修改/etc/my.cnf文件,[mysqld]下面添加以下参数,保存配置文件。

vi 	/etc/my.cnf

server-id=1
log-bin=mysql-bin #启动MySQL二进制日志系统
binlog-do-db=newdb #需要同步的数据库
binlog-ignore-db=information_schema,mysql,test #不需要同步的数据库

3、重启mysql服务。

service   mysqld  restart 

4、登录mysql,创建新用户 ‘new’,只允许通过服务器’192.168.1.100’主机登录数据库,密码为 ‘new’。

mysql   -uroot -p 
mysql>	CREATE USER  'new'@'192.168.1.100'  IDENTIFIED  BY 'new';

5、授权允许任意主机,使用 ‘new’账号、‘new’密码’,对数据库的所有库和所有表只能进行复制操作(. :所有库的所有表;’%’ 任意主机)。

mysql>	GRANT REPLICATION SLAVE ON *.* TO 'new'@'%' IDENTIFIED BY 'new';

6、刷新权限。

mysql>	flush privileges;

7、删除mysql数据库中user表内user列为空的数据行(解决授权刷新后本地用户无法登录mysql的问题)。

mysql> 	use   mysql;
mysql> 	select  user,host from user;
mysql>	delete from user where user not in ('root','new');
mysql> 	select  user,host from user;
mysql>	flush privileges;
mysql>	exit;

在这里插入图片描述

8、root账号登录mysql,关闭所有打开的表锁定数据库以防止写入数据。

mysql>	FLUSH TABLES WITH READ LOCK;

9、退出mysql。

mysql> exit;

10、使用root账户及密码导出newdb数据库(new账号无此权限)。

mysqldump -uroot  -pmysql  --databases  newdb  > /root/newdb.sql;

11、使用scp命令传输数据库文件newdb.sql到从服务器/root根目录。

scp  	/root/newdb.sql	 root@192.168.1.110:/root

12、登录数据库,解锁数据库。

mysql -uroot -p
mysql>	unlock    tables;

13、查看master状态(注意File与Position项,配置slave从服务器需要这两项参数)

mysql>	show   master  status    	\G

在这里插入图片描述

二、从服务器相关配置

1、修改/etc/my.cnf文件,在[mysqld]下添加以下参数,保存配置。

vi /etc/my.cnf

server-id=3 #设置从服务器id,必须与主服务器不同
log-bin=mysql-bin #启动MySQ二进制日志系统
replicate-do-db=newdb #需要同步的数据库名
replicate-ignore-db=information_schema,mysql,test #不需要同步的数据库名

2、重启mysql服务。

service	 mysqld  restart 

3、导入数据库。

mysql  -uroot -pmysql  	<	 /root/newdb.sql

4、配置主从同步(master_log_file与master_log_pos是主服务器master状态下的File与Position)。

mysql -uroot -p
mysql>	show databases; 	#查看导入数据库
mysql>	use mysql;	 #切换数据库
mysql>	stop slave;	 #停止slave
mysql>	change master to  
master_host='192.168.1.100',
master_user='new',
master_password='new',
master_log_file='mysql-bin.000018',
master_log_pos=430;  	#配置主从同步参数
mysql>	start slave;	 #开启slave

在这里插入图片描述
5、查看slave状态。

mysql>	show slave status 	\G;

在这里插入图片描述
注意:Slave_IO_Running: Yes 和Slave_SQL_Running: Yes 这两项必须为Yes,Master_Log_File、Read_Master_Log_Pos要与主服务器master状态下的File,Position相同。如果都是正确的,则说明配置成功!

三、测试主从服务器同步数据

1、主服务器操作数据库newdb,新建表stu,插入数据。在Master服务器的任何修改都会通过事务日志提交到Slave服务器,测试过程如下。

mysql -uroot -p
mysql >	use newdb;
mysql >	create table stu (age int, name char(40) );
mysql >	show tables;
mysql >	insert into stu values (10, 'liming');
mysql >	insert into stu values (20, 'wangming');
mysql >	insert into stu values (30, 'wanglili');
mysql >	select * from stu;

                                      主服务器                                                                         从服务器
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在CentOS 7下配置MySQL 5.7.22的主从复制,需要以下步骤: 1.安装MySQL 5.7.22版本 在CentOS 7上安装MySQL 5.7.22,可以使用如下命令: ``` sudo yum install mysql-server ``` 2.配置主服务器 在主服务器的配置文件`/etc/my.cnf`中添加如下内容: ``` server-id=1 log-bin=mysql-bin binlog-do-db=test ``` 其中,`server-id`表示服务器的ID,`log-bin`表示开启二进制日志,`binlog-do-db`表示指定需要同步数据库名称。 3.重新启动MySQL服务器 在修改了配置文件后,需要重新启动MySQL服务器: ``` sudo systemctl restart mysqld ``` 4.创建用于复制的用户 在主服务器上创建一个用于复制的用户,并授予复制权限: ``` GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; ``` 其中,`slave_user`是用于复制的用户名,`password`是用户密码。 5.查看主服务器状态 在主服务器上运行如下命令查看主服务器状态: ``` SHOW MASTER STATUS; ``` 记录下`File`和`Position`的值,备用。 6.配置从服务器 在从服务器的配置文件`/etc/my.cnf`中添加如下内容: ``` server-id=2 replicate-do-db=test ``` 其中,`server-id`表示服务器的ID,`replicate-do-db`表示指定需要同步数据库名称。 7.重新启动MySQL服务器 在修改了配置文件后,需要重新启动MySQL服务器: ``` sudo systemctl restart mysqld ``` 8.设置从服务器复制主服务器 在从服务器上运行如下命令,设置从服务器复制主服务器: ``` CHANGE MASTER TO MASTER_HOST='master_host_name', MASTER_USER='slave_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='master_log_file_name', MASTER_LOG_POS=master_log_pos; ``` 其中,`master_host_name`是主服务器的IP地址或主机名,`slave_user`和`password`是用于复制的用户名和密码,`master_log_file_name`和`master_log_pos`是之前在主服务器上记录的值。 9.启动从服务器复制 在从服务器上运行如下命令,启动从服务器复制: ``` START SLAVE; ``` 10.查看从服务器状态 在从服务器上运行如下命令查看从服务器状态: ``` SHOW SLAVE STATUS\G ``` 如果输出中`Slave_IO_Running`和`Slave_SQL_Running`的值都为`Yes`,则表示从服务器已经成功复制主服务器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值