mysql master 指主服务器上安装的mysql
mysql slave 指从服务器上安装的mysql
1.mysql master
vi /etc/my.cnf
[mysqld]
explicit_defaults_for_timestamp #增加此行,要不然会有警告
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
max_connections=10000
join_buffer_size=64M
read_buffer_size=128M
key_buffer_size=512M
open-files-limit=28196
query_cache_type=2
query_cache_size=32M
tmp_table_size=1024M
long_query_time=2
slow_query_log=ON
slow_query_log_file=/var/log/mysql/slowquery.log
# master 配置 开始
server-id=102 #不要与mysql slave一样
binlog_do_db=rdec_new #需要同步的数据库
binlog_ignore_db=test #不需要同步的数据库
log_bin=/var/log/mysql/mysql-bin #建议写绝对路径
expire_logs_days=10
max_binlog_size=100M
sync_binlog=1
# master 配置 结束
symbolic-links=0
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
2.mysql slave
[mysqld]
explicit_defaults_for_timestamp
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
max_connections=10000
join_buffer_size=64M
read_buffer_size=128M
key_buffer_size=512M
open-files-limit=28196
query_cache_type=2
query_cache_size=32M
tmp_table_size=1024M
long_query_time=2
slow_query_log=ON
slow_query_log_file=/var/log/mysql/slowquery.log
# slave 配置开始
server-id=103 #需要与mysql master不同
replicate-do-db=rdec_new 同步的数据库,需要在mysql master中配置
log_bin=/var/log/mysql/mysql-bin #建议使用绝对路径
expire_logs_days=10
max_binlog_size=100M
relay_log=/var/log/mysql/relay.log
log_slave_updates=1
read_only=1
sync_master_info=1
sync_relay_log=1
sync_relay_log_info=1
# slave 配置结束
symbolic-links=0
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
3.如果mysql是采用拷贝安装的话,需要修改
/var/lib/mysql/auto.cnf中的server-uuid,不要相同
4.在mysql master、mysql slave上建立同步账号,如:
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO repl@'192.168.1.%' IDENTIFIED BY 'p4ssword';
账号:repl 密码p4ssword ,此处限制mysql slave 的ip是192.168.1网段
5.启动mysql master
6.测试用repl账号连接mysql master,确认能够连接
7.使用root 登录mysql master ,输入show master status;
记住返回结果中的File字段内容,如: mysql-bin.000001
8.启动mysql slave
9.设置mysql slave从mysql master复制数据
CHANGE MASTER TO MASTER_HOST='192.168.5.102',MASTER_USER='repl',MASTER_PASSWORD='p4ssword',MASTER_LOG_FILE='mysql-bin.000004',MASTER_LOG_POS=0;
MASTER_HOST 是mysql master的IP地址,注意设置防火墙开放mysql的端口
MASTER_USER MASTER_PASSWORD 是mysql master中设置的同步账号
MASTER_LOG_FILE 是mysql master中使用show master status 返回的File字段的内容,mysql master每次重启后都会不同,对应的mysql slave需要重新设置(重新设置时,先 stop slave然后设置连接mysql master,然后start slave);
10.输入命令 start slave;启动复制
11.输入命令 show slave status;注意查看last_errno 是否有错误信息;
12.在mysql master中建表、增删数据,测试是否同步;