Mysql數據庫主從復制
- 兩臺服務器
192.168.1.78
192.168.1.79
兩臺服務器都安裝mysql,安裝步驟省略。
- 主從復制配置
1、配置主數據庫/etc/my.cnf
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_AUTO_VALUE_ON_ZERO
server-id=100
log-bin=mysqlmaster-bin.log
sync-binlog=1
innodb_buffer_pool_size=512M #為物理內存70%
lower_case_table_names=1 #使mysql不區分大小寫
innodb_flush_log_at_trx_commit=1
trust_function_creators=1
2、配置從數據庫
[mysqld] sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_AUTO_VALUE_ON_ZEROserver-id=101 #比主數據大1
log-bin=mysqlslave-bin.log
sync-binlog=1
innodb_buffer_pool_size=512M
lower_case_table_names=1
innodb_flush_log_at_trx_commit=1
trust_function_creators=1
3、重啟mysql數據庫
4、登錄主數據庫
在主數據庫上創建用於主從復制的賬戶(192.168.1.79換成你的從數據庫IP)
GRANT REPLICATION SLAVE ON *.* TO [email protected] IDENTIFIED BY ‘123456‘;mysql>
主數據庫鎖表(禁止再插入數據以獲取主數據庫的的二進制日誌坐標):
FLUSH TABLES WITH READ LOCK;mysql>
SHOW MASTER STATUSmysql>
記錄這兩個值,下面會用到
在主數據庫上使用mysqldump命令創建一個數據快照
mysqldump -uroot -p -P3308 --all-databases --triggers --routines --events >all.sqlmysql>
# 接下來會提示你輸入mysql數據庫的root密碼,輸入完成後,如果當前數據庫不大,很快就能導出完成。
解鎖主數據的鎖表操作
mysql>
UNLOCK TABLES;
5、登錄從數據庫
從導入主的快照
mysql>
mysql -uroot -p -h127.0.0.1 -P3308 < all.sql
給從數據庫設置復制的主數據庫信息(註意修改MASTER_LOG_FILE和MASTER_LOG_POS的值):
mysql>
CHANGE MASTER TO MASTER_HOST=‘192.168.1.78‘,MASTER_USER=‘repl‘,MASTER_PASSWORD=‘123456‘,MASTER_LOG_FILE=‘mysqlmaster-bin.000001‘,MASTER_LOG_POS=1431;
#然後啟動從數據庫的復制線程:
mysql>
START slave;
#接著查詢數據庫的slave狀態
mysql> SHOW slave STATUS \G
如果下面兩個參數都是Yes,則說明主從配置成功!
Slave_IO_Running: Yes
Slave_SQL_Running:
Yes
接下來你可以在主數據庫上創建數據庫、表、插入數據,然後看從數據庫是否同步了這些操作
Mysql數據庫主從復制