MySQL入门——如何进行主从配置

1.基本要求

  1)两台服务器(windows,linux,mac)

  2)双方mysql版本需一致,如不一致,只要主节点低于从节点

  3)两台服务器防火墙关闭

  4)双方数据库所用的用户,要具有远程访问的权限

2.主服务器配置

   1)修改主服务器的MySQL配置文件,window(my.ini),linux(my.cnf)

#mysql唯一id
server-id = 1
#二进制日志文件,此项为必填项,否则不能同步数据;
log-bin = "mysql-bin"
#指定二进制错误文件
log-error="mysql-error"
#需要同步的数据库,如果需要同步多个数据库;
binlog-do-db = demo
#binlog-do-db = slaveDB1
#binlog-do-db = slaveDB2
#不需要同步的数据库
binlog-ignore-db = mysql

  2)授权给从数据库服务器

GRANT REPLICATION SLAVE ON *.* to 'root'@'111.111.111.111' identified by '123456';
flush privileges;

  3)mysql8.0版本授权

CREATE USER 'root'@'111.111.111.111' IDENTIFIED WITH
mysql_native_password BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'root'@'222.222.222.222';

  4)重启主服务器

$ service mysqld restart

  5)查看主服务器BIN日志的信息(执行完之后记录下这两个值,然后在配置完从服务器之前不要对主服务器进行任何操作,因为每次操作数据库时这两个值会发生改变)

$ show master status

3.从服务器配置

  1)修改从服务器的MySQL配置文件,window(my.ini),linux(my.cnf),配置server-id 的值,并确保这个ID没有被别的MySQL服务所使用

server-id=2 #默认是1改成2
log-bin="mysql-bin" #这行本身有
replicate-do-db=demo #需要同步的数据库
replicate-ignore-db=mysql #不同步系统数据库
read_only #设只读权限
  2)启动mysql服务

  3)执行同步sql语句

change master to
master_host='111.111.111.111',
master_user='root',
master_password='123456',
master_log_file='mysql-bin.000001',
master_log_pos=154;

# MASTER_HOST : 设置要连接的主服务器的ip地址

# MASTER_USER : 设置要连接的主服务器的用户名

# MASTER_PASSWORD : 设置要连接的主服务器的密码

# MASTER_LOG_FILE : 设置要连接的主服务器的bin日志的日志名称

# MASTER_LOG_POS : 设置要连接的主服务器的bin日志的记录位置。

  4)启动Slave同步进程

$ start slave;

4.主从同步检查

  1)查看状态

$ show slave statusG

其中Slave_IO_Running 与 Slave_SQL_Running 的值都必须为YES,才表明状态正常

  2)如果之前从服务器启动过需要先停止,再运行

$ stop slave
原文地址:https://www.cnblogs.com/huxiaoyang/p/12594727.html