1.環境準備 2台主機上分别安裝好 mysql服務
2.設定mysql_master,修改 master 資料庫的配置檔案,vim /etc/my.cnf
[mysqld]
... ... ... ...
log-bin=mysql-bin # 二進制日志名稱,開啟bin-log
server-id=1 # 為伺服器設定一個獨一無二的id
3.重新開機 mysql_master 資料庫服務:
service mysqld restart
4.對mysql_slave的設定,不需要開啟二進制日志,僅需要設定以下 server-id 即可
server-id=2
5.重新開機 mysql_slave 資料庫服務:
6.建立主從複制賬号
create user 'dba'@'xxx.xxx.xxx.%' identified by 'password';
grant replication slave on . to dba@'xxx.xxx.xxx.%';
7.對mysql_master 所有的資料庫(包括觸發器,存儲過程,函數)導出到 all.sql
show databases;(先檢視mysql服務下面有哪些庫)
./mysqldump --single-transaction --master-data=2 --triggers --routines --all-databases -uroot -p >/tmp/all.sql
8.在mysql_slave 手動導入 all.sql
./mysql -uroot -p < /tmp/all.sql
9.檢視主伺服器BIN日志的資訊
執行完之後記錄下這兩值,然後在配置完從伺服器之前不要對主伺服器進行任何操作,因為每次操作資料庫時這兩值會發生改變。
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
| mysql-bin.000002 | 2823| | |
10.設定從伺服器并啟用slave
mysql>change master to master_host='xxx.xxx.xxx.xx',
master_user='dba',
master_password='password',
master_log_file='mysql-bin.000002',
master_log_pos=2823;
11.啟動從伺服器
stop slave;
start slave;
show slave status \G
出現:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
表示成功