您当前的位置: 首页 >  sql

苗先生的PHP记录

暂无认证

  • 0浏览

    0关注

    190博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

MySQL 主从复制步骤,版本5.7

苗先生的PHP记录 发布时间:2022-02-11 09:18:32 ,浏览量:0

1.修改主服务器mysql配置

首先修改主服务器权限

如果执行下面的语句返回 ERROR 1193 (HY000): Unknown system variable 'validate_password_policy'

可以先执行 show variables like 'validate_password%';

如果返回 Empty set

在mysql命令行中执行  install plugin validate_password soname 'validate_password.so'; 就行了


set global validate_password_policy=0;
set global validate_password_length=1;
 
 
# 修改远程权限
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
 
# 刷新权限
flush privileges;
# 打开配置文件
vi /etc/my.cnf


# 修改配置文件 mysqld模块中如下配置
log-bin=master-bin #二进制文件名称
binlog-format=ROW  #二进制日志格式,有row/statement/mixed三种格式,row把改变的内容复制过来 而不是把命令在从服务器上执行一遍 , statement是主服务器上执行的sql语句  在从服务器上执行同样的语句 ,mixed是默认采用基于语句的我无法精确的复制时 就会采用基于行的复制 . . .   mysql默认采用语句的复制 , 效率比较高
server-id=1        #要求各服务器的id必须不一样
binlog-do-db=msb   #同步的数据库名称 , 不是所有数据库都复制可以不指定

重启主服务器mysql后执行 show master status

2. 修改从服务器配置

首先创建database , 名字为msb(主服务器同步同名)

配置从服务器登录主服务器的账号权限


set global validate_password_policy=0;
set global validate_password_length=1;
 
 
# 修改复制权限
grant replication slave on *.* to 'root'@'%' identified by '123456';
 
# 刷新权限
flush privileges;

 修改从服务器配置/etc/my.cnf

#mysqld模块中添加配置
log-bin=master-bin #二进制文件名称
binlog-format=ROW  #二进制文件格式
server-id=2        #服务器id ,不可重复

重启从服务器后命令行登录

连接主服务器

#连接主服务器
主服务器查看配置  show master status;


change master to master_host='192.168.149.140',master_user='root',master_password='123456',master_port=3306,master_log_file='mysql-bin.000009',master_log_pos=154;


master_host        主服务器地址
master_user        主服务器用户
master_password    主服务器密码
master_port        主服务器端口
master_log_file    主服务器文件名
master_log_pos     主服务器文件位置


也可以在数据库中添加配置文件
server_id = 2
log-bin = /usr/local/mysql/log/solve-bin.log
master-host = 192.168.149.140
master-user = root
master-pass = 123456
master-port = 3306
master-connect-retry = 60
#启动slave

start slave;

#查看slave状态 (这里注意没有分号)

show slave status\G

主要查看slave_io_running 和 slave_sql_running

如果这两个有任何一个不是 yes , 可以在/var/log/mysqld.log  或者show slave status\G中查看

报错信息 每次都需要stop slave 重新执行
Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it)

在mysql命令行中查询  
show variables like 'server_id';


 如果主从数据库是一致的,配置文件没有生效, 可以运行   但是会重启失效
set global server_id=3 

Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.


可以运行 下句 , 看下主从数据库是一样的值吗 , 是一样的就找到问题了
show variables like 'server_uuid';

其他问题自行百度

关注
打赏
1665468453
查看更多评论
立即登录/注册

微信扫码登录

0.5745s