MySQL主從分離 主庫配置 1、/etc/my.cnf 主數據庫配置 #一般已存在 www.2cto.com server-id = 1 #需要進行復制的數據庫 binlog-do-db = search #不需要進行復制的數據庫 replicate-ignore-db = mysql replicate-ignore-db = test replicate-ignore-db = information_schema #生成的同步數據所需要的文件,序號從: mysql-bin.000001開始 log-bin=mysql-bin 2、重啟mysql,登陸Mysql,設置從數據庫所需要的權限:可以從任何機器登陸,賬號/密碼:slave1/ passw0rd grant replication slave,reload,super on *.* to 'slave1'@'%' identified by 'passw0rd'; 3、查看狀態 mysql> show master status; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000005 | 7657 | search | | +------------------+----------+--------------+------------------+ 1 row in set (0.01 sec) --------------------------------------------------------------------------------------------------- 從庫配置 1、/etc/my.cnf 從數據庫配置,由於Mysql版本從5.1.7以後開始就不支持“master-host”類似的參數,用配置文件設置主從同步時,出現:mysqld: unknown variable 'master-host=127.0.0.1' #將配置文件中的server-id該為2 server-id = 2 (可能不起作用,需要登錄數據庫後,使用show variables like 'server_id'; 查看。然後設置set global server_id=2;) #需要進行同步的數據庫名稱 replicate-do-db = mydatabase 2、重啟mysql,登陸Mysql,設置同步設置,其中syslog.000001為日志文件,master_log_pos=0為日志開始復制的位置,即:從syslog.000001的0位置同步數據,日志文件和行號根據實際情況進行處理 mysql> stop slave; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> change master to -> master_host='110.103.8.14',master_user='slave1',master_password='passw0rd', -> master_log_file='mysql-bin.000005',master_log_pos=7657,master_port=53306; Query OK, 0 rows affected (0.10 sec) mysql> start slave; Query OK, 0 rows affected (0.00 sec) show slave status\G; 命令易讀性好一點