MySQL主从复制配置
很简单。
主节点:172.30.0.193
从节点:192.168.199.220
linux:Ubuntu18.04
主节点
-
修改配置文件
vim /etc/mysql/mysql.conf.d/mysqld.cnf
,启用二进制日志文件,[mysqld]下添加:server-id = 1 log_bin = mysql-bin binlog_format = mixed innodb_file_per_table = ON skip_name_resolve = ON # server-id为当前节点设置一个全局唯一ID
-
重启MySQL,
service mysql restart
-
进入MySQL,
mysql -u root -p
1)查看二进制日志是否开启:
show global variables like '%log%';
2)查看保存的二进制文件名:
show master status;
3)创建有复制权限的用户:
grant replication slave, replication client on *.* to 'repluser'@'192.168.199.220' identified by 'replpass';
4)刷新:
flush privileges
-
开启远程连接
vim /etc/mysql/mysql.conf.d/mysqld.cnf # 设为:bind-address = 0.0.0.0
从节点
-
修改配置文件
vim /etc/mysql/mysql.conf.d/mysqld.cnf
,启用二进制日志文件,[mysqld]下添加:server_id = 2 relay_log = relay-log relay_log_index = relay-log.index innodb_file_per_table = ON skip_name_resolve = ON
-
重启MySQL,
service mysql restart
-
进入MySQL,
mysql -u root -p
1)查看 server 相关信息:
show global variables like '%server%';
2)配置访问主节点
CHANGE MASTER TO MASTER_HOST='172.30.0.193',MASTER_USER='repluser',MASTER_PASSWORD='replpass', MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=0;
MASTER_LOG_FILE
要写show master status;
输出的文件名,它表示主节点当前正在写入的日志文件,也是日志列表的最后一个,show master logs;
。3)启动复制线程:
start slave;
START SLAVE 可以指定线程类型:IO_THREAD ,SQL_THREAD, 如果不指定,则两个都启动。
4)查看节点状态:
show slave statusG;
,Slave_IO_Running
和Slave_SQL_Running
都已经开启了。
测试
-
在主节点创建数据库,并查看主节点二进制日志信息
create database test_saync; show master status;
-
在从节点查找二进制日志文件,并查看
test_saync
数据库是否复制成功 -
完
一主多从时,按照从节点的方法配置多个即可。需要在主节点添加新从节点的连接信息。
主从复制原理、数据同步延时、主库宕机相关问题: MySQL读写分离