mysql主從簡單配置


 

 

 

第一步、配置主從,來自於博文

https://www.cnblogs.com/gl-developer/p/6170423.html

下面配置的步驟就直接復制了。

一、准備工作:

1.主從數據庫版本最好一致

2.主從數據庫內數據保持一致

主數據庫:182.92.172.80 /linux

從數據庫:123.57.44.85 /linux

二、主數據庫master修改:

1.修改mysql配置

找到主數據庫的配置文件my.cnf(或者my.ini),我的在/etc/mysql/my.cnf,在[mysqld]部分插入如下兩行:

[mysqld]
log-bin=mysql-bin #開啟二進制日志
server-id=1 #設置server-id

2.重啟mysql,創建用於同步的用戶賬號

打開mysql會話shell>mysql -hlocalhost -uname -ppassword

創建用戶並授權:用戶:rel1密碼:slavepass

mysql> CREATE USER 'repl'@'123.57.44.85' IDENTIFIED BY 'slavepass';#創建用戶
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'123.57.44.85';#分配權限
mysql>flush privileges;   #刷新權限

3.查看master狀態,記錄二進制文件名(mysql-bin.000003)和位置(73):

復制代碼
mysql > SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 73       | test         | manual,mysql     |
+------------------+----------+--------------+------------------+
復制代碼

二、從服務器slave修改:

1.修改mysql配置

同樣找到my.cnf配置文件,添加server-id

[mysqld]
server-id=2 #設置server-id,必須唯一

2.重啟mysql,打開mysql會話,執行同步SQL語句(需要主服務器主機名,登陸憑據,二進制文件的名稱和位置):

復制代碼
mysql> CHANGE MASTER TO
    ->     MASTER_HOST='182.92.172.80',
    ->     MASTER_USER='rep1',
    ->     MASTER_PASSWORD='slavepass',
    ->     MASTER_LOG_FILE='mysql-bin.000003',
    ->     MASTER_LOG_POS=73;
復制代碼

3.啟動slave同步進程:

mysql>start slave;

4.查看slave狀態:

復制代碼
mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 182.92.172.80
                  Master_User: rep1
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000013
          Read_Master_Log_Pos: 11662
               Relay_Log_File: mysqld-relay-bin.000022
                Relay_Log_Pos: 11765
        Relay_Master_Log_File: mysql-bin.000013
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
        ...
復制代碼

當Slave_IO_Running和Slave_SQL_Running都為YES的時候就表示主從同步設置成功了。接下來就可以進行一些驗證了,比如在主master數據庫的test數據庫的一張表中插入一條數據,在slave的test庫的相同數據表中查看是否有新增的數據即可驗證主從復制功能是否有效,還可以關閉slave(mysql>stop slave;),然后再修改master,看slave是否也相應修改(停止slave后,master的修改不會同步到slave),就可以完成主從復制功能的驗證了。

還可以用到的其他相關參數:

master開啟二進制日志后默認記錄所有庫所有表的操作,可以通過配置來指定只記錄指定的數據庫甚至指定的表的操作,具體在mysql配置文件的[mysqld]可添加修改如下選項:

復制代碼
# 不同步哪些數據庫  
binlog-ignore-db = mysql  
binlog-ignore-db = test  
binlog-ignore-db = information_schema  
  
# 只同步哪些數據庫,除此之外,其他不同步  
binlog-do-db = game  
復制代碼

如之前查看master狀態時就可以看到只記錄了test庫,忽略了manual和mysql庫。

 

第二步、踩坑跳坑

按照上面的配置發現 

Slave_IO_Running: Connecting  # 出現錯誤,IO線程處於正在連接狀態

 於是乎關閉了主從的防火牆:

iptables -F  # 關閉防火牆

重新配置了slave還是這樣;

在主服務器上操作:

select user,host,password from mysql.user;

rep1這個賬號是存在的。

所以看看權限對不對:

沒有權限,這次發現問題不對了;

當時在heidisql中確實存在賬號及及權限

 

 所以我把rep1這個賬號刪除,在heidisql中重新創建賬戶以及授權。再FLUSH PRIVILEGES;

發現

    Slave_IO_Running: Yes
            Slave_SQL_Running: No

Slave_IO_Runing好了,Slave_SQL_Running變成No了,於是重新配一次Slave后發現全部變成Yes.

 

參考博文

https://www.cnblogs.com/hellotracy/articles/5183057.html

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

外鏈掛兩個

上海寶山注冊公司 蘇州西門子洗衣機維修

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM