1. 程式人生 > >Linux兩臺服務器mysql數據庫同步

Linux兩臺服務器mysql數據庫同步

系統 如果 htm lin repl l數據庫 出錯 修改方法 ria

我們在做web系統部署的時候往往涉及到兩臺甚至多臺數據庫的備份,為了數據安全考慮(雖然說到底不過是一堆0 1,但是價值千金啊),所以我們還是乖乖做同步把!

1、準備兩臺Linux服務器(主、從)

2、安裝好Mysql

3、在配置文件/etc/my.cnf(MySQL中為mysql.ini)修改開啟二進制日誌

log-bin=mysql-bin

修改方法:打開配置文件後在

[mysqld]中添加內容:

server-id = 1  #確保在整個MySQL集群中唯一

log-bin=/var/log/mysql/mysql-bin.log  #日誌存放位置

log-bin-index = binlog.index

4、重啟mysql服務?

service mysql restart

5、查看配置是否正常

?show variables like log-bin;

6.開始主從復制

第一步:在主服務器中創建一個從服務器中可以登陸的MySQL用戶

mysql>GRANT REPLICATION SLAVE ON *.*TO 用戶名@從服務器ip IDENTIFIED BY 密碼;

mysql>FLUSH PRIVILEGES;

第二步:查看主服務器MySQL二進制文件名和位置

mysql> SHOW MASTER STATUS;

第三步:告知二進制文件名和位置

在從服務器中執行(註意標點符號,最後才是分號)

mysql > CHANGE MASTER TO

      >MASTER_HOST=主服務器地址,

      >MASTER_USER=創建的用戶名,

      >MASTER_PASSWORD=密碼,

      >MASTER_LOG_FILE=mysql-bin.000048(根據自己的修改)>MASTER_LOG_POS=432(自己修改);

完成主從復制;

7、測試主從復制

在從服務器中執行

mysql > START SLAVE;      #開啟復制mysql

      
> SHOW SLAVE STATUS\G; #查看主從復制是否成功
技術分享圖片                 數據庫同步成功

當看到Slave_IO_Running: YES、Slave_SQL_Running:

YES才表明狀態正常

8、實際測試:

登陸主服務器主MySQL:show database;

登陸從服務器MySQL:show databases;

主數據庫進行如下操作:

(1)創建數據庫和表

?create database test; use test;

create table tab1(id int auto_increment,name varchar(10),primary key(id));

show databases;

show tables;

(2)從數據庫也查看數據庫和表,看數據是否同步了

9、出錯請看

進入slave服務器,運行:

mysql > show slave status\G;

            .......

解決辦法一:

Slave_SQL_Running: No

1.程序可能在slave上進行了寫操作

2.也可能是slave機器重起後,事務回滾造成的.

一般是事務回滾造成的:

解決辦法二:

mysql > stop slave;

mysql > set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;

mysql > start slava;

註意:如果實在不行就在從服務器裏邊執行如下操作

mysql > stop slave; 

      >reset  slave;

      > 重新配置同步(見第六步)

      >start  slave;

至此數據庫同步完成!

?

當你發現自己的才華撐不起野心時,就請安靜下來學習吧!

Linux兩臺服務器mysql數據庫同步