MySQL 主从复制 详细实例讲解 与 常见错误解决方法

一、主机ip 192.168.0.128 ,从机ip:192.168.0.130 分别测试是否能ping通对方,如果不能,请关闭防火墙或开放对应端口

二、主服务器配置

1.备份主服务器的数据

mysqldump -uroot --all-databases --lock-all-tables > ~/master_db.sql -p

  将来会在家目录下生产一个master_db.sql的数据库文件,即备份文件

2.修改主服务器的配置文件

vim /etc/my.cnf

  添加

[mysqld]
log-bin=mysql-bin     #开启二进制日志
server-id=1           #设置server-id
character_set_server=utf8
init_connect='SET NAMES utf8'

  修改完毕之后保存退出,并且把MySQL服务器进行重启

systemctl restart mysqld

  

终端连接数据库

mysql –uroot –p

  输入

set global validate_password_policy=0;

  

set global validate_password_length=0;

  

GRANT REPLICATION SLAVE ON *.* TO'slave'@'%' identified by 'slave';

  

FLUSH PRIVILEGES;

  

  获取主服务器的二进制日志信息

SHOW MASTER STATUS;

  

三、从服务器配置

将备份文件导入到从服务器数据库

mysql -uroot< master_db.sql -p

  

修改从服务器mysql的配置文件

vim /etc/my.cnf

  添加

[mysqld]
server-id=2           #设置server-id
character_set_server=utf8
init_connect='SET NAMES utf8'

  

保存后退出,重启mysqld

systemctl restart mysqld

  

登录mysql

mysql -uroot -p

  输入

change master to master_host='192.168.0.128', master_user='slave', master_password='slave',master_log_file='mysql-bin.000002', master_log_pos=798;

  master_host 为主服务器ip,

  master_user 为主服务器设置的同步账号,

  master_password 为同步账号的密码

  master_log_file和master_log_pos为主服务器日志的二进制信息,

开启同步

start slave;

 如果有其他同步进程测必须先关闭

stop slave;

  

查看同步情况

show slave statusG;

  

如果以下两项都是 yes 就表示主从同步设置成功了

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

常见主从复制问题查询连接

原文地址:https://www.cnblogs.com/shifu204/p/11726911.html