+---------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------------+----------+--------------+------------------+-------------------+
| mysqlbin-log.000002 | 7607264 | | | |
+---------------------+----------+--------------+------------------+-------------------+
3、把主服務器數據庫文件打包: tar -zcvf mysqlmain.tar.gz ./data/
4、打包完成,解除讀鎖:UNLOCK TABLES
把打包的主服務的數據文件復解制到從服務器數據目錄並壓(用BeyongCompare拷貝時注意slave主機的訪問權限),確保文件所有者爲啓動MYSQL的用戶(kkdba:kkdba)
解壓:
tar zxvf /path/to/mysql-VERSION-OS
.tar.gz
然後啓動slave,記得啓動時加上skip-slave-start選項,使之不會立刻去連接master
/app/mysqltdms/bin/mysqld_safe --defaults-file=/app/mysqltdms/my.cnf --basedir=/app/mysqltdms --datadir=/app/mysqltdms/data --pid-file=/app/mysqltdms/mysqld.pid --user=mysql --skip-slave-start
設置並啓動同步
1、先停止同步:stop slave; #不需要 --skip-slave-start 這個參數未啓動slave
2、變更同步主服務器:CHANGE MASTER TO MASTER_HOST='xx.xx.xx.1',MASTER_PORT=3306,MASTER_USER='uslave',MASTER_PASSWORD='password',MASTER_LOG_FILE='mysqlbin-log.000010',MASTER_LOG_POS=798859980;
3、啓動同步:start slave;
4、啓動後查看同步狀態:show slave status\G
會得到類似下面的列表,都爲Yes說明主從複製成功:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
====服務器配置====
>vi my.conf #master
server-id=1 //服務器ID不能重複
log-bin=/log/mysql/mysql-bin //開啓MYSQL二進制日誌 ,指定到文件
binlog-do-db=dbname //需要複製的數據庫名,如果複製多個數據庫,重複設置這個選項即可
binlog-ignore-db=dbname //不需要複製的數據庫苦命,如果複製多個數據庫,重複設置這個選項即可
expire-logs-days = 7 //只保留7天的二進制日誌,以防磁盤被日誌佔滿
>vi my.conf #slave
[mysqld]
server-id=2 //服務器ID不能重複
master-host=主機
master-user=用戶名
master-password=密碼
master-port=端口
replicate-do-db=需要複製的數據庫名,如果複製多個數據庫,重複設置這個選項即可
replicate-ignore-db=需要複製的數據庫名,如果複製多個數據庫,重複設置這個選項即可
replicate-ignore-table=dzx2.pre_common_session //自動跳過的表,session表沒必要做複製
slave-skip-errors = 1032,1062,126,1114,1146,1048,1396,1064 //自動跳過的錯誤代碼,以防複製出錯被中斷
====錯誤列表====
1062: Duplicate entry '115846' for key 'PRIMARY'' on ...
>stop slave;
>set global sql_slave_skip_counter=1;
>start slave;
Last_IO_Errno: 1593
Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
--複製導致了 datadir/auto.cnf 文件記錄的server-id與主服務器一樣,修改主服務器或者從服務器的隨便一個server-id更改掉
重啓服務 同步成功
====取消主從同步====
mysql> slave stop;
mysql>reset slave;
mysql>change master to master_user='', master_host='', master_password='';
結果報錯如下:
ERROR 1210 (HY000): Incorrect arguments to MASTER_HOST
解決辦法如下:
mysql>change master to master_host=' ';
即可成功刪除同步用戶信息。
注意:上面的命令報錯的原因,爲master_host=' ' 裏面必須有內容,即使爲空,也應該用空格代替,而不能什麼都不寫。