linux同步数据库,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; #查看主從復制是否成功
數據庫同步成功
當看到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;至此數據庫同步完成!
總結
以上是生活随笔為你收集整理的linux同步数据库,Linux两台服务器mysql数据库同步的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 改变服务器控件的显示属性,2.6.1
- 下一篇: java中的祖先类_Java程序公共祖先