配置mysql主从服务器
參考:https://www.linuxidc.com/Linux/2016-09/135633.htm
一、Master主服務器配置(192.168.1.3)
1.編輯my.cnf(命令查找文件位置:find / -name my.cnf)
vi /etc/mysql/my.cnf 在[mysqld]中添加: server-id = 1 log_bin = master-bin log_bin_index = master-bin.index binlog_do_db = my_data binlog_ignore_db = mysql 備注:server-id 服務器唯一標識,log_bin 啟動MySQL二進制日志,binlog_do_db 指定記錄二進制日志的數據庫,binlog_ignore_db 指定不記錄二進制日志的數據庫。2.登錄主服務器創建從服務器用到的賬戶和權限:
grant replication slave on *.* to 'masterbackup' @'192.168.1.%' identified by 'masterbackup'; (192.168.1.%通配符,表示0-255的IP都可訪問主服務器,正式環境請配置指定從服務器IP)3.重啟MySQL,命令:sudo service mysql restart
4.查看主服務器狀態: show master status;二、Slave從服務器配置(192.168.1.5)
1.編輯my.cnf編(命令查找文件位置:find / -name my.cnf) vi /etc/mysql/my.cnf 在[mysqld]中添加: server-id = 2 relay-log = slave-relay-bin relay-log-index = slave-relay-bin.index 2.重啟Slave從服務器MySQL,命令:/etc/init.d/mysql restart 3.登錄Slave從服務器,連接Master主服務器: change master to master_host='192.168.1.103',master_port=3306,master_user='masterbackup',master_password='masterbackup',master_log_file='master-bin.000001',master_log_pos=2403; 備注:master_log_file對應show master status顯示的File列:master-bin.000001;master_log_pos對應Position列:2403,否則有可能出現同步失敗。 4.啟動Slave數據同步。 start slave; 5.查看Slave信息: show slave status\G; 備注:Slave_IO_Running和Slave_SQL_Running都為yes才表示同步成功。?
Slave_IO_Running:No解決辦法
解決辦法一、
Slave_SQL_Running: No
1.程序可能在slave上進行了寫操作
2.也可能是slave機器重起后,事務回滾造成的.(我的就是這個錯誤)
一般是事務回滾造成的:
解決辦法:
mysql> slave stop;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> slave start;
第一次操作完畢之后,輸入命令showslave status\G?,發現還是沒變,又操作了一次,就好了;
slave啟動失敗問題總結:
從服務器配置的結果一定是:Slave_IO_Running 與 Slave_SQL_Running 狀態都要為Yes
1:Change master to
如果從庫的Slave未啟動,Slave_IO_Running為NO。
可能是主庫的master的信息有變化,
查看主庫show master status;
記錄下File,Position字段,假設為‘mysql-bin.000004’,98;
在從庫執行
mysql>stop slave; mysql>change master to master_log_file='mysql-bin.000004',master_log_pos=98; mysql>start slave;
?
2:SET global sql_slave_skip_counter=n;
如果從庫的slave_sql_running為NO。
Err文件中記錄:
Slave:Error "Duplicate entry '1' for key 1" on query.....
可能是master未向slave同步成功,但slave中已經有了記錄。造成的沖突可以在從庫上執行
set global sql_slave_skip_counter=n;
跳過幾步。再restart slave就可以了。
3:發現mysql slave服務器經常因為一些特殊字符或者符號產生的更新語句報錯,整個同步也會因此而卡在那,最初的辦法只是手動去出錯的機器執行下面三條SQL語句,跳過錯誤即可。
mysql>stop slave; mysql>set GLOBAL SQL_SLAVE_SKIP_COUNTER=1; mysql>start slave;
?
轉載于:https://www.cnblogs.com/wang666/p/9223952.html
總結
以上是生活随笔為你收集整理的配置mysql主从服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 拉提琴的少女油画是谁画的啊?
- 下一篇: @Controller和@RestCon