3、主從配置須要注意的地方:linux
4、主從配置的簡要步驟:sql
(6).開啓同步,查看狀態vim
[root@client102 scripts]# vim /etc/my.cnf # 修改配置文件裏,下面兩個參數: # 設置server_id,通常建議設置爲IP,或者再加一些數字 server_id =102 # 開啓二進制日誌功能,能夠隨便取,最好有含義 log-bin=mysql3306-bin
# 我這裏是多實例mysql,因此啓動是這樣的,若是你們是單實例的,就直接啓動就能夠[/etc/init.d/mysqld start] [root@client102 scripts]# mysqld_multi start 3306 # 登錄mysql 服務器 [root@client102 scripts]# mysql -uroot -S /usr/local/mysql/mysqld3306.sock -p # 授予用戶權限用於主從同步 mysql> grant replication slave on *.* to 'kongzhong'@'192.168.1.100' identified by 'kongzhong'; Query OK, 0 rows affected (0.00 sec) # 刷新受權表信息 mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) # 查看position 號,記下position 號(很重要,從機上須要這個position號和如今的日誌文件,我這裏是414和mysql3306-bin.000001) mysql> show master status; +----------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +----------------------+----------+--------------+------------------+-------------------+ | mysql3306-bin.000001 | 414 | | | | +----------------------+----------+--------------+------------------+-------------------+ 1 row in set (0.00 sec)
# 臨時鎖表 mysql> flush tables with read lock; # 我這裏實行的全庫備份,在實際中,咱們可能只同步某一個庫,能夠只備份一個庫 # 新開一個終端,執行以下操做 [root@client102 data]# mysqldump -p3306 -uroot -p -S /usr/local/mysql/mysqld3306.sock --all-databases > /tmp/mysql.sql # 解鎖 mysql> unlock tables; # 將備份的數據傳送到從機上,用於恢復 [root@client102 data]# scp /tmp/mysql.sql root@192.168.1.100:/tmp
[root@client100 ~]# vim /etc/my.cnf # 設置server_id,通常建議設置爲IP,或者再加一些數字 server_id =100
# 啓動數據庫 [root@client100 ~]# mysqld_multi start 3306 # 還原主DB server備份的數據 [root@client100 ~]# mysql -uroot -S /usr/local/mysql/mysqld3306.sock -p < /tmp/mysql.sql
[root@client100 ~]# mysql -uroot -S /usr/local/mysql/mysqld3306.sock -p mysql> change master to -> master_host='192.168.1.102', -> master_user='kongzhong', -> master_password='kongzhong', -> master_port=3306, -> master_log_file='mysql3306-bin.000001', -> master_log_pos=414; #/* 下面是一部分註解: #/* 指定主DB server的IP地址 master_host='192.168.1.102' #/* 指定用於同步的用戶[這個就是咱們在主DB server受權的用戶] master_user='kongzhong' #/* 指定用於同步的用戶的密碼 master_password='kongzhong' #/* 指定主DB server的端口[下面一個例子,能夠重點看這個] master_port=3306 #/* 指定從DB server 從哪一個日誌文件開始讀[在主DB server上使用show master status查看到日誌] master_log_file='mysql3306-bin.000001' #/* 指定 從哪一個POSITION號開始讀 master_log_pos=414 # 開啓主從同步 mysql> start slave; # 查看主從同步狀態 mysql> show slave status\G; # 主要看如下兩個參數:[這兩個參數若是是yes就表示主從同步正常] Slave_IO_Running: Yes Slave_SQL_Running: Yes