Slave伺服器的版本要等於或者高於master伺服器 現在的實例是在mysql 5.7上的主從配置 a) master伺服器的my.cnf配置,server_id 推薦用IP的後兩位數字 b) master伺服器授權一個可以數據同步的用戶(這裡的用戶是slave,密碼123456) c) mast ...
Slave伺服器的版本要等於或者高於master伺服器
現在的實例是在mysql 5.7上的主從配置
a) master伺服器的my.cnf配置,server_id 推薦用IP的後兩位數字
[mysqld] federated port=50000 basedir = /usr/local/mysql datadir = /usr/local/mysql/data server_id = 43209 log-bin=mysql-bin expire_logs_days=3 binlog-do-db=dbname binlog-ignore-db=mysql,information_schema max_allowed_packet=500M event_scheduler=1 max_connections=2000 character_set_server=utf8 init_connect='SET NAMES utf8' sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [client]
default-character-set=utf8
b) master伺服器授權一個可以數據同步的用戶(這裡的用戶是repluser,密碼123456)
grant replication slave on *.* to 'repluser'@'%' identified by '123456';
c) master 伺服器重啟mysql
service mysqld restart
d) slave伺服器的my.cnf配置, server_id 43210是slave IP的後兩位[mysqld]federatedport=50000basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
server_id = 43210
log-bin=mysql-bin
expire_logs_days=3
binlog-do-db=dbname
log_slave_updates=1
binlog-ignore-db = mysql,information_schema
max_allowed_packet=500M
max_connections=2000
character_set_server=utf8
init_connect='SET NAMES utf8'
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[client]
default-character-set=utf8
e) salve 伺服器測試連接master的同步用戶(repluser),測試可以連接,即可退出
mysql -hX.X.X.X -urepluser -p123456 -P50000
f) slave伺服器重啟
service mysqld restart
*****************************************************************************************************************************
1:在master伺服器跑
mysqldump --master-data=2 --single-transaction -uroot -p dbname > /root/mysqldump.sql
2:把主伺服器產生的mysqldump.sql 做gzip 壓縮,上傳到從伺服器
gzip -9 /root/mysqldump.sql
scp /root/mysqldump.sql.gz [email protected]:/root/
3:在從伺服器上首先要創建一個空的資料庫,資料庫 名稱和即將要要入的資料庫名稱一致
create database dbname;
有兩種方法導入
方法一, 進入mysql命令行操作
use dbname;
source /root/mysqldump.sql
方法二,不進入mysql命令行操作
mysql -uroot -p dbname < /root/mysqldump.sql
4:用vi查看 mysqldump.sql中的MASTER_LOG_FILE和MASTER_LOG_POS信息
5:在從伺服器運行
stop slave;
CHANGE MASTER TO master_host='192.X.X.X', MASTER_LOG_FILE='mysql-bin.000028', MASTER_LOG_POS=654560631, master_user='repluser', master_password='123456', master_port=50000;
6:在從伺服器運行 start slave;
7:在從伺服器運行show slave status\G; 查看Slave_IO_Running和Slave_SQL_Running 兩列是否都為YES,Seconds_Behind_Master為0,就正常了