相关链接:
mysql5.7安装:Mysql安装_luo_guibin的博客-CSDN博客
mysql常用命令:Mysql常用命令行大全 - 蓦然回首恍然如梦 - 博客园
一、实验效果
实现两台服务器主从复制
二、准备工作
两台虚拟机,10.0.0.10(主),10.0.0.100(从),且安装mysql,我以mysql5.47为例子(不会安装可以看我前面的博客),两者都创建了一个名为msb的数据库。
...mysql
create database msb;
三、实例配置
1、更改主服务器my.cnf配置文件
...shell
vi /etc/my.cnf
#在mysqld模块中添加如下配置信息
log-bin=master-bin #二进制文件名称
binlog-format=ROW #二进制日志格式,有row、statement、mixed三种格式,row指的是把改变的内容复制过去,而不是把命令在从服务器上执行一遍,statement指的是在主服务器上执行的SQL语句,在从服务器上执行同样的语句。MySQL默认采用基于语句的复制,效率比较高。mixed指的是默认采用基于语句的复制,一旦发现基于语句的无法精确的复制时,就会采用基于行的复制。
server-id=1 #要求各个服务器的id必须不一样
binlog-do-db=msb #同步的数据库名称
2、更改从服务器登录主服务器的账号授权
...sql(授权操作)
set global validate_password_policy=0; #密码策略为0
set global validate_password_length=1; #密码长度为1
grant replication slave on *.* to 'root'@'%' identified by 'rootroot';
flush privileges; #刷新权限
3、更改从服务器my.cnf配置文件
...shell
vi /etc/my.cnf
#在mysqld模块中添加如下配置信息
log-bin=master-bin #二进制文件的名称,名称可以自行更改,但需要跟后面change语句一致。
binlog-format=ROW #二进制文件的格式
server-id=2 #服务器的id
4、重启主服务器的mysqld服务
...shell
#重启mysql服务
service mysqld restart
#登录mysql数据库
mysql -uroot -p
#查看master的状态
show master status;
5、重启从服务器并进行相关配置
#重启mysql服务
service mysqld restart
#登录mysql
mysql -uroot -p
#连接主服务器
change master to master_host='192.168.150.11',master_user='root',master_password='123456',master_port=3306,master_log_file='master-bin.000001',master_log_pos=334;
#启动slave
start slave
#查看slave的状态
show slave status\G(注意没有分号)
四、实现效果
如果其中一个显示connecting,需要关闭主服务器的防火墙,从服务器stop slave,重新连接主服务器,start slave(或者reset master)即可,show slave status\G再次查看就可以了。
如果还是不行,需要查看日志,/var/log/mysqld.log日志文件。
五、效果测试
我在主服务上对数据库msb进行修改,从服务器会自动更新修改内容,相反,从服务器修改数据库msb,数据只会保存在从服务器,主数据库不受影响。
在主服务器上msb数据库里创建一个名为user的表。
从服务器下直接查看即可。
说明主从复制搭建成功!