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


我們在做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;  #查看主從復制是否成功
Linux下兩台服務器mysql數據庫同步
                數據庫同步成功

當看到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、出錯請看

問題一:mysql服務器啟動不了

出錯:Starting MySQL... ERROR! The server quit without updating PID file

解決辦法:找到mysql安裝目錄下面的data目錄,刪除mysql-relay-log.index

問題二:不能同步

進入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;

至此數據庫同步完成!

 

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


免責聲明!

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



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