MYSQL簡單配置主從

*配置Replication**
準備兩臺mysql服務器,版本最好一致,防止版本不同帶來的兼容性問題。

第一步:配置

主服務器配置文件:/etc/my.cnf 編輯該文件,添加如下:

 [mysqld]
 log-bin=/var/log/mysql/mysql-bin       //生成bin文件路徑自己指定
 server-id=1               //隨意設置數字,保證id是唯一的

日誌目錄:/var/log/mysql 創建:

mkdir -p /var/log/mysql
chown -R mysql.mysql /var/log/mysql    //給目錄授權,屬主屬組給mysql

從配置文件:/etc/my.cnf 添加server-id:

 [mysqld]
 server-id=2    //同上可隨意設置,主要保證它是唯一的就好

重啓服務

systemctl restart mysqld

從服務器需要一個主數據庫存在的用戶來登陸主數據庫獲取數據,所以我們在主數據庫裏創建一個用戶:

1.mysql>CREATE USER 'user_name'@'%'    
2.mysql>GRANT USER REPLICATION SLAVE ON *.* TO 'user_name'@'%' identified by '123';         

1//%所有主機可以是IP、localhost(本機)

2//REPL..SLAVE-只讀權限,all=所有權限,(庫名).(表名)-代表所有 ,by '密碼'-需遵頊密碼原則

簡單在從服務器測試一下剛纔創建的用戶能否進入主數據庫

[root@localhost ~]# mysql -uuser_name -p'123' -h mysql-master1(主服務器IP)

第二步:主從數據保持一致

主數據庫中是否存有數據,若存有,用mysqldump 導出數據,並導入從數據庫

主:

[root@localhost ~]# mysqldump -uroot -p'xx' -all >/mysql_bak/all.sql
scp /mysql_bak/all.sql 192.168.xx.xx:/root/

從:

[root@localhost ~]# mysqldump -uroot -p'xx' </root/all.sql

最後一步:從數據庫裏配置鏈接

查看主服務器master詳情信息用來配置從數據庫

mysql> FLUSH TABLES WITH READ LOCK;   --刷新所有表和阻止寫入

mysql> show master status \G      --查看主master的信息
****************** 1. row ****************
             File: mysql-bin.000001     --得到起始bin文件名
         Position: 0                    --得到POS
     Binlog_Do_DB:
 Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)

根據上面信息來從數據庫裏面配置:

mysql> CHEANGE MASTER TO 
MASTER_HOST='192.168.10.130',   --主服務器IP
MASTER_USER='user_name',        --連接主服務器數據庫的用戶
MASTER_PASSWORD='123',          --用戶密碼
MASTER_LOG_FILE='mysql-bin.000001',  --起始bin文件名稱
MASTER_LOG_POS=0;

完成後,啓動從服務器的複製線程並檢查--》啓動:start slave 停止:stop slave

mysql> show slave start;    --啓動
       Query OK, 0 rows affected (0.09 sec)

show slave status\G;        --檢查
長數據中找到:Slave_IO_Running: Yes
            Slave_SQL_Running: Yes   --yes代表完成主從配置,NO則需要根據報錯排查問題

排錯:IO/SQL常見錯誤分析

IO線程:IO是從服務器用了去主服務器上去查找bin文件的,取回bin文件暫存在一處
SQL線程:從服務器到暫存處讀取bin文件並寫入從數據庫,達到主從數據同步
      1、檢查主/var/log/mysql 目錄權限是否賦予給mysql
      2、主/etc/my.cnf 配置裏的log-bin文件生成位置是否有多條,註釋掉其他,保留自己設置
      3、主數據庫上創建給從用來訪問鏈接的用戶,有權限問題
      4、server-id 相同

具體問題具體分析,多根據報錯定位問題,並解決。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章