实现三台主服务器的MySQL数据库同步到一台从服务器
一、相关配置文件:
主一:
赋权
GRANT FILE,SELECT,REPLICATION SLAVE ON *.* to 'repl'@'192.168.1.5' identified by 'repl_password';
主二:
赋权
GRANT FILE,SELECT,REPLICATION SLAVE ON *.* to 'repl'@'192.168.1.5' identified by 'repl_password';
主三:
赋权
GRANT FILE,SELECT,REPLICATION SLAVE ON *.* to 'repl'@'192.168.1.5' identified by 'repl_password';
从(注释部分根据需要决定是否启用)
赋权
grant shutdown on *.* to shutdown@'192.168.1.5' identified by 'shutdown';
二、主库的导出和从库的导入
mysqldump -u'username' -p'password' --master-data=1 dbname > dbname.sql 或则
mysqldump -u'username' -p'password' --master-data=2 dbname > dbname.sql
当--master-data值为1的时候,mysqldump出来的文件会有如下语句
CHANGE MASTER TO MASTER_LOG_FILE='mysql_bin.001334', MASTER_LOG_POS=960646;
默认情况下这个值是1当这个值是2的时候,也会有这条语句,但是会将其注释掉。
登录从服务器,执行 stop slave
在从库执行导入,如:
mysql -u'username' -p'password' -P3306 -S /tmp/mysql.sockLogdb dbname < dbname.mysql
如果--master-data值为1,可以直接start slave如果为2,则还需追加执行以下语句:
change master to master_host='192.168.1.2,master_user='repl',master_password=repl_password',master_port=3306,master_log_file='mysql_bin.001334',master_log_pos=960646;
三、相关命令
从服务器开启关闭MySQL
/usr/local/mysql/bin/mysqld_multi start 1,2,3
/usr/local/mysql/bin/mysqld_multi stop 1
/usr/local/mysql/bin/mysqladmin shutdown 1 -S /tmp/mysql.sockLogdb
从服务器登录MySQL
mysql -uroot -p -P 3306 -S /tmp/mysql.sockLogdb
mysql -uroot -p -P 3307 -S /tmp/mysql.sockPassportdb
mysql -uroot -p -P 3308 -S /tmp/mysql.sockGamedb
查看主从状态
show master status;
show slave status /G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果此二行都是yes,就表示主从同步成功