1. 程式人生 > >Mysql數據庫主從復制

Mysql數據庫主從復制

sta nbsp article ack pos subst rep import right

  • 兩臺服務器

  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_ZERO
  server-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)

  mysql>GRANT REPLICATION SLAVE ON *.* TO [email protected] IDENTIFIED BY ‘123456‘;

  主數據庫鎖表(禁止再插入數據以獲取主數據庫的的二進制日誌坐標):

  mysql>FLUSH TABLES WITH READ LOCK;

  mysql>SHOW MASTER STATUS

  技術分享

  記錄這兩個值,下面會用到

  在主數據庫上使用mysqldump命令創建一個數據快照

  mysql>mysqldump -uroot -p -P3308 --all-databases --triggers --routines --events >all.sql

  # 接下來會提示你輸入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數據庫主從復制