mysql主從數據庫同步詳細配置測試

 

mysql主從同步配置測試步驟圖例
目的:
測試主從mysql之間的數據庫同步效果
測試環境:
Master(主):     RHEL 5.5 x86-64      Mysql.5.0.77     ip: 10.86.21.147
Slave (從):      RHEL 5.5 x86-64      Mysql.5.0.77     ip: 10.86.21.146
測試數據庫名稱:leadtest
測試表:user
Mysql賬號 root 密碼:redhat
主服務器端建立同步測試數據庫
一:配置Master的配置文件/etc/my.cnf,供同步使用。
vi /etc/my.cnf
在原有的基礎上添加如下內容:
Server_id=1                1代表主端   2代表從端
binlog-do-db=leadtest 要同步的數據庫
log-bin=mysql-bin數據庫二進制日誌
二:重新啓動 /etc/init.d/mysqld restart
三:mysql –u root –p 在主端上登陸mysql服務器
四:創建庫:create database leadtest;
然後我們要添加一個MySQL帳號爲同步專用的用戶,這裏以root用戶爲例子,同步賬號必須要有對操作數據庫的增刪改查權限
同步賬號實質上是供從端使用的。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'redhat' WITH GRANT OPTION;
這句的意思說允許root用戶以redhat爲密碼從任意網段遠程登陸10.86.21.147(主端)
保存退出,/etc/init.d/mysqld restart 重啓服務即可。
Slave端的配置:
一:安裝slave端的Mysql。安裝步驟與主端一樣。
安裝完成以後啓動mysqld服務,檢查是否可以正常啓動/登陸
/etc/init.d/mysqld start
二:測試是否可以登陸到本地的mysql服務器mysql -u root -p 
三:修改slave(從端)的配置文件/etc/my.cnf,供同步使用。
Vi /etc/my.cnf
在原有的基礎上添加如下內容:
server-id=2
master-host=10.86.21.147主端地址
master-user=root同步專用用戶(主端提供的用戶)
master-password=redhat該用戶的密碼
master-port=3306主端mysql端口
master-connect-retry=60斷開重連次數
replicate-do-db=leadtest 接受要同步的數據庫
保存退出,重啓服務即可。
/etc/init.d/mysqld restart
檢查數據庫同步情況:
一:首先登陸主端show databases; 查看的數據庫“leadtest”是否創建成功。
二:在Slave 端show databases;查看是否有leadtest數據庫被同步(創建)過來
在主端創建測試表“user”並設置字段
命令:
USE leadtest;
 CREATE TABLE `user` (
   `id` int(11) NOT NULL auto_increment,
   `name` varchar(20) character set utf8 NOT NULL,
   `sex` varchar(2) character set utf8 NOT NULL,
   PRIMARY KEY (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
一:在主端使用show tables;命令 查看創建的表是否生效。
二:在從端查看是否有user表被創建(同步)
use leadtest;
show tables;
數據庫增刪改操作後的數據庫同步效果驗證
【查詢操作】
主端對user表插入數據並查詢是否插入成功:
insert into user(id, name, sex)values('2', 'user2', 'na');
select * from user;
從端查詢插入的數據是否出現記錄:
Select * from user;
【增加操作】
主端增加一條記錄
insert into user(id, name, sex)values('3', 'user3', 'na');
從端查詢是否有記錄增加
【修改操作】
在主端先插入數據再進行update操作
update user set name='user1' where name='user2';
user2改爲user1
從端查詢是否有數據變化
【刪除操作】
主端刪除一條記錄操作
delete from user where id='3';
從端查詢是否有變化

至此對mysql主從同步數據的測試就到這裏
故障排除記錄:
同步不成功的話,進入數據庫查看主從的運行狀態,show   master/slave    status\G;                   
如果出現以下錯誤的話Slave_IO_Running: NO       Slave_SQL_Running: NO 是主從的參數不一致造成的。
解決方法:
在主端使用 show master status \G; 查Position:  數值再手動推送記錄:
進入從數據庫,先使用slave stop;停止slave狀態,然後再用命令:change  master  to  Master_Log_File = 'mysql-bin.0000020', Master_Log_Pos = 98; 紅色部分根據自己master端進行修改。
如果有新添加的庫要同步,此方法同樣可以使用。如果出現Slave_IO_Running: NO的話說明主從網絡之間問題,可以刪除/var/lib/mysqld/master.info文件嘗試一下。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章