1. 程式人生 > >mysql數據庫主從配置及還原

mysql數據庫主從配置及還原

mysql數據庫主從設置 排錯 還原

主數據庫服務器的配置master 51

做主從配置要保持兩個數據庫中的庫和表一致

1 做用戶授權
2 啟用binlog日誌
3 查看正在使用的binlog日誌文件
1、
mysql> grant replication slave on . 授權.(所有的庫和表)
-> to
-> repluser@"%" 可用%代表所有,也可指定具體ip地址
-> identified by "123456"; 指定密碼
2、
]#vim /etc/my.cnf 修改配置文件

[mysqld]
server_id=51 指定服務器主機名
log-bin=master51
binlog-format="mixed"
:wq
]#systemctl restart mysqld 重啟mysqld服務
]#ls /var/lib/mysql/master51 查看/var/lib/mysql/是否有master51開頭的新文件生成
3、
mysql> show master status; 查看主服務器狀態,有結果即成功

從數據庫服務器的配置slave 52
1 驗證主庫授權用戶
2 指定server_id
3 指定主庫信息
4 查看配置

1、
]#mysql -h192.168.4.51 -urepluser -p123456 驗證主庫授權,從主機52上登陸主機51的數據庫

2、
]#vim /etc/my.cnf 修改配置文件
[mysqld]
server_id=52
:wq
]# systemctl restart mysqld 重啟服務

3、
]# mysql -uroot -p123456
mysql> show slave status\G; 查看從配置信息

mysql> change master to
-> master_host="192.168.4.51", ip地址
-> master_user="repluser", 用戶名
-> master_password="123456", 密碼
-> master_log_file="master51.000001", binlog日誌
-> master_log_pos=154; 偏移量

mysql> start slave; 啟動slave進程

4、
mysql> show slave status\G; 查看從服務器的狀態,IO/SQL線程狀態為yes即為成功
Slave_IO_Running: Yes IO線程
Slave_SQL_Running: Yes SQL線程

驗證主從同步配置
在主庫服務器上創建新庫 新表 插入記錄 在從庫有同樣數據。

主從同步工作原理
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

排錯:
IO線程:把主庫binlog日誌的sql命令記錄本機的中繼日誌文件裏
IO線程出錯原因:指定主庫信息 錯誤、firwalld 、selinux
Last_IO_Error: 查看報錯原因

修復IO線程?
mysql> stop slave ;
mysql> change master to 選項=值;
mysql> start slave;

SQL線程:執行中繼日誌文件裏的sql命令 把數據寫進本機庫裏
SQL線程出錯原因:執行中繼日誌文件裏的sql命令用到庫或表在本機不存在
Last_SQL_Error: 查看報錯原因

修復SQL線程 使其有主庫上的庫或表 stop slave ; start slave;

還原:
把數據庫服務器192.168.4.X 還原為獨立的數據庫服務器。

要先到/var/lib/mysql 目錄下
]# rm -rf master.info 刪除主從配置的文件
rm -rf relay-log.info
rm -rf 主機名-relay-bin.*
將vim /etc/my.cnf配置文件中設置的條件註釋掉
]# systemctl restart mysqld 重啟服務
mysql> show slave status\G; 查看狀態

mysql數據庫主從配置及還原