mysql主从复制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql主从复制相关的知识,希望对你有一定的参考价值。

主服务器配置
给服务器起一个独立的ID
server-id = 106
设置二进制的保存文件
log-bin = mysql-bin
二进制日志的格式/mixed/row/statement
binlog-format = mixed

从服务器配置
server-id = 109
log-bin = mysql-bin
binlog-format = mixed
relay-log = mysql-relay

重启mysql服务
如果提示权限不够可以直接启动
mysqld_safe --user=mysql &

mysql启动提示Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘
首先看看权限够不够,然后看看mysql有没有启动
service mysqld status
如果提示的不在安装目录下l例如:
Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘
可以使用mysql -uroot -p -S/var/lib/mysql/mysql.sock
或者使用软连接
In -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

进入mysql查看主服务器状态
show master status;
如下图说明可以
技术分享图片
查看从服务器
show slave status;

如果为空原因可能为主服务器没有给从服务器授权
grant replication client,replication slave on . to [email protected]‘192.168.0.%‘ identified by ‘repl‘;
flush privileges;

从服务器读取主服务器的文件
change master to
master_host = ‘192.168.0.106‘,
master_user = ‘repl‘,
master_password = ‘repl‘,
master_log_file =‘mysql-bin.000001‘,
master_log_pos =106;
查看连接状态
show slave status;
技术分享图片
show slave status\G;
技术分享图片
说明连接成功
执行
start slave;
再次查看状态有没有成功
show slave status\G;
如果报错
Last_IO_Error: error connecting to master ‘[email protected]:3306‘ - retry-time: 60 retries: 86400
技术分享图片
防火墙的问题开放端口或者关闭防火墙
重启从服务器
说明:如果是生产环境,从服务器复制之前需要导入一次主服务器的完全备份,然后在从主服务器备份之后开始记录二进制日志的pos位置开始服务。
主服务器运行中并且有一定的数据再加入从服务器:
此过程要先把主服务器的数据备份出来,然后拷贝到从服务器上导入到从服务器的数据库,然后在让从服务器从主服务器的指定位置开始备份数据即可。

以上是关于mysql主从复制的主要内容,如果未能解决你的问题,请参考以下文章

MySQL中主从复制不同步?

MySQL主从复制和读写分离

MySQL主从复制和读写分离

Linux----------mysql主从复制和基于GTID主从复制

MySQL主从复制

mysql主从复制概述以及配置mysql5.7.10实现简单主从复制