现在以windows 为主 CentOS为从数据做一个主从复制的案例。
【1】windows mysql_master
1.先创建一个用于给slave复制的账号。
这里不用命令创建了,因为我之类直接用navicat工具更加方便,
权限这里一定要给所有权限比较稳妥,毕竟你的host已经指定了,不用太担心。
2.修改my.ini
找到windows下的my.ini ,有的可能找不到,我的是在 C:\ProgramData\MySQL\MySQL Server 8.0
3.修改里面内容为
server-id=1
log-bin=mysql-bin
binlog-do-db=你要复制的数据库
binlog-ignore-db=mysql
4.(如果没有报错忽略这个)保存后发现重启mysql服务报错,原因是编码问题 需要把它存为ANSI,保存然后再启动就可以。
【2】CentOS mysql Slave
1.mysql配置文件my.cnf
server_id = 2
log_bin = mysql_bin
binlog_do_db =你要复制的数据库
binlog_ignore_db = mysql
重启mysql 服务 service mysql restart;
应用连接到master命令: mysql->change master to master_host='172.16.0.86',master_user='syncAccount',master_password='xxxxxx', master_log_file='mysql-bin.000001',master_log_pos=30236;
注意 master_log_file和master_log_pos 需要再主数据库执行show master status;查看
Start slave;启动slave
在xshell登录mysql 执行 show slave status\G;查看状态
我们看到运行正常,
也有报错的问题的,错误号大概是22或者其他,那么你需要到my.cnf加入 slave_skip_errors=22例如错误是22就加=22重启服务再试就可以了!