聊聊MySQL主從資料庫同步的那些事兒
在linux伺服器下測試:主(master)伺服器IP:219.223.5.105(對應內網IP:192.168.1.75)從(slave)伺服器IP:219.223.5.104(對應內網IP:192.168.1.74)一、修改主伺服器master[mysqld]log-bin=mysql-bin //[必須]啟用二進位制日誌server-id=104 //[必須]伺服器唯一ID,預設是1,一般取IP最後一段二、修改從伺服器slave[mysqld]log-bin=mysql-bin //[必須]啟用二進位制日誌server-id=105 //[必須]伺服器唯一ID,預設是1,一般取IP最後一段三、重啟兩臺伺服器的mysql104: service mysqld restart;105:service mysqld restart;四、賦予MySQL遠端登入許可權在主伺服器master(104)上操作:mysql -uroot -proot123mysql > GRANT REPLICATION SLAVE ON *.* to ‘mysync’@’%’ identified by ‘password’;mysql > FLUSH privileges;//其中*.*代表所有許可權,mysync代表賬號,password代表密碼,’%’代表所有客戶端都可以連線。修改後需要重新整理許可權。mysql> select user,host,password from mysql.user;
-> master_host=’192.168.1.74′, #主伺服器的IP
-> master_user=’mysync’, #主伺服器的連線使用者名稱
-> master_password=’mysync’, #主伺服器的連線密碼
-> master_log_file=’mysql-bin.000001′, #對應上面截圖中的File
-> master_log_pos=1743; #對應上面截圖中的Position
在主伺服器上建立資料庫xdmysql> create database xd;Query Ok, 1 row affected (0.01 sec)在主伺服器上建立表student mysql> create table student (name varchar(256),age int,sex varchar(256));Query Ok, 1 row affected (0.00 sec)在主伺服器上的表student 中插入記錄mysql> insert into student values(‘wangming’,18,’f’); insert into student values(‘xiaobai’,20,’m’);Query Ok, 2 row affected (0.00 sec)在從伺服器上檢視
mysql> show databases;
中間遇到的一些問題:1.如果主從資料庫的表結構不一致,會出現問題。2.Slave_SQL_Running: No mysql同步故障解決方法具體見下面連結:http://kerry.blog.51cto.com/172631/277414/3.單表同步 在slave伺服器配置: replicate-do-table=xd.student 多張表則配置多個replicate-do-table 複製某些表(可用匹配符)
replicate-wild-do-table=tablename%