MySQL主从同步配置

MySQL主从同步

  • 1.配置文件路径
  • 2.主-数据库配置
    • 2.1 修改配置文件
    • 2.2 重启MySQL
    • 2.3 创建主从同步账户
      • 2.4 查看当前二进制日志文件的状态信息
  • 3.从-数据库配置
    • 3.1 手动同步数据
    • 3.2 启动slave
    • 3.3查看slave状态

1.配置文件路径

Linux 配置路径 /etc/my.cnf;   windows 配置路径 mysql/bin/my.ini

2.主-数据库配置

2.1 修改配置文件

[mysqld]
log-bin=mysql-bin   #[必须]启用二进制日志
server-id=1         #[必须]服务器唯一ID,默认是1,一般取IP最后一段

2.2 重启MySQL

[windows] 
net stop mysql; #停止mysql
net start mysql; #启动myql

[Linux]
systemctl restart mysql; #重新启动mysql

[docker]
docker restart mysql;#重启docker容器

2.3 创建主从同步账户

create USER '用户名'@'%' IDENTIFIED BY '密码';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO '用户名'@'%'; 
FLUSH PRIVILEGES;
#其中 %代表任意ip都可以连接,也可以将其提替换为备用数据库ip

2.4 查看当前二进制日志文件的状态信息

show master status; #查看当前二进制日志文件的状态信息

例:

名称 描述
File mysql-bin.000002 二进制日志文件名称
Position 3411 当前日志大小(指针位置)
Binlog_Do_DB basetest 数据库名称

3.从-数据库配置

[mysqld]
server-id=2 #[必须]不能跟主数据库相同
log-bin=mysql-slave-bin
relay-log=mysql-relay

3.1 手动同步数据

CHANGE MASTER TO 
MASTER_HOST='主数据库ip(master ip)',
MASTER_USER='主数据用户名 #用于同步的用户,建议额外建立一个账户不要使用root', 
MASTER_PASSWORD='密码', 
MASTER_PORT=3306, # 主数据库端口
MASTER_LOG_FILE='mysql-bin.000002', 
MASTER_LOG_POS=120 ; 

3.2 启动slave

start slave; # 启动slave

3.3查看slave状态

show slave status; # 展示slave当前状态

例:

列名
Slave_IO_Running YES
Slave_SQL_Running YES

当这两个值都为YES时,主从同步配置完成。

你可能感兴趣的:(数据库)