mysql互爲主從配置

環境爲2臺ubuntu1604的ECS

先在各數據庫創建emeetdb庫
master1操作
1.修改A數據庫配置文件加入:
[mysqld]
lower_case_table_names=1
server-id = 31
binlog_do_db=emeetdb
replicate-do-db=emeetdb
log-bin=mysql-bin
log-slave-updates
binlog-ignore-db=mysql
slave-skip-errors=all

修改運營商的端口限制,設定固定ip允許訪問3306端口
修改ufw :sudo ufw allow from 121.121.121.37 to any port 3306

重啓mysql

#  service mysql restart

建立用於同步的賬戶

#  mysql -uroot -p

mysql> grant replication slave on . to ‘root’@‘121.121.121.37’ identified by ‘eMeet2019#’;
建議使用ip限制,不要開放給所有都可以訪問,保障數據庫安全

查看File對應值,並記錄下來

show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      449 | emeetdb      | mysql            |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

mysql>  exit

master2操作
sudo ufw allow from 39.120.120.31 to any port 3306`
2.修改slave上的配置文件my.cnf

#  vi /etc/my.cnf

[mysqld]
lower_case_table_names=1
server-id   = 37
binlog_do_db=emeetdb
replicate-do-db=emeetdb
log-bin=mysql-bin
log-slave-updates
binlog-ignore-db=mysql
slave-skip-errors=all

重啓mysql

#  service mysql restart

在從服務器上建立相應的數據庫
#  mysql -uroot -p

將39.120.120.31設置爲自己的主服務器
mysql>  CHANGE MASTER TO
MASTER_HOST='39.120.120.31',MASTER_PORT=3306,
MASTER_USER='root',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=449;

#此處的參數都是前面配置和保存的數值
啓動從服務器複製功能

mysql>  start slave;

mysql>  show slave status\G;


Slave_IO_Running: Yes
Slave_SQL_Running: Yes

注:

#Slave_IO_Running:連接到主庫,並讀取主庫的日誌到本地,生成本地日誌文件
#Slave_SQL_Running:讀取本地日誌文件,並執行日誌裏的SQL命令。
上面兩個必須都是yes,其中一個NO均屬錯誤

mysql>  exit

錯誤一可能是沒有給用戶授權:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'121.121.121.37' IDENTIFIED BY '123456' WITH GRANT OPTION;
flush privileges;

錯誤二是mysql沒有監聽外部ip訪問
如果要讓mysql監聽到其他的地址,my.cnf中可以將bind-address = 127.0.0.1註釋掉。
或者將bind-address = 0.0.0.0監聽所有的地址,然後重啓mysql服務。

至此,單向主從配置完畢

互爲主從繼續配置如下

--------------------以下在服務器master2上操作
建立用於同步的賬戶

mysql -uroot -p

grant replication slave on . to ‘root’@‘39.120.120.31’ identified by ‘123456’;

查看File對應值,並記錄下來

show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      747 | emeetdb      | mysql            |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

回到作爲從機的master1操作
將121.199.68.37設置爲自己的主服務器

mysql>  CHANGE MASTER TO 
MASTER_HOST='121.121.121.37',
MASTER_PORT=3306,
MASTER_USER='root',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=747;

啓動從服務器複製功能

mysql>  start slave;

mysql>  show slave status\G;


Slave_IO_Running: Yes
Slave_SQL_Running: Yes

上面兩個必須都是yes,其中一個NO均屬錯誤

mysql>  exit

至此互爲主從配置完畢

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