標籤:mysql主從 mysql主從配置
執行個體說明:
主庫IP:0.0.0.43
從庫IP:0.0.0.194
一、配置主庫 (0.0.0.43 )
1、編輯主庫設定檔/etc/my.cnf,注意位置,添加在[mysqld]下面,不要添加到[mysqld_safe]下面
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql old_passwords=1 max_connections=10000 join_buffer_size = 64M read_buffer_size = 128M key_buffer = 512M open-files-limit = 28196 query_cache_type=2 query_cache_size = 32M tmp_table_size = 1024M long_query_time=2 log-slow-queries = /var/log/mysql/slowquery.log #以下開始是主從配置 server-id=1 #主庫一般是1,從庫寫別的,不重複就行 log-bin=my_binglog #開啟日誌記錄,這樣就可以支援主從了 log_bin=/var/log/mysql/mysql-bin.log expire_logs_days=10 max_binlog_size=100M binlog_do_db=abc #需要被分發的主要資料庫名 binlog_ignore_db=test #不需要被分發的主要資料庫名 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
binlog_do_db為需要複製的db。 binlog_ignore_db為忽略複製的db。需要增加DB的話,就增加相應的一行。
2、重啟master資料庫,運行檢查
mysql> show master status; #檢查是否以master形式啟動了。 #注意以下內容,這是作為主從同步的依據: master_log_file主庫當前的記錄檔 master_log_pos主庫的記錄檔位移量 mysql> show variables like "%log%"; #需要看到這樣的一行,說明binlog已經開啟了: log_bin | ON
3.在master上為slave建立使用者
mysql> grant replication slave,reload,super on *.* to ‘slave‘@‘0.0.0.194‘ identified by ‘123456‘;
這樣,主機配置完畢。
二、配置從庫 (0.0.0.194 )
1、編輯從庫設定檔/etc/my.cnf,注意位置,添加在[mysqld]下面,不要添加到[mysqld_safe]下面
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql old_passwords=1 max_connections=10000 join_buffer_size = 64M read_buffer_size = 128M key_buffer = 512M open-files-limit = 28196 query_cache_type=2 query_cache_size = 32M tmp_table_size = 1024M long_query_time=2 log-slow-queries = /var/log/mysql/slowquery.log #以下開始是主從配置 server-id=2 #主庫一般是1,從庫寫別的,不重複就行 binlog_do_db=abc #需要被分發的主要資料庫名 binlog_ignore_db=test #不需要被分發的主要資料庫名 #主從配置內容結束 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
2、登入從庫,執行從庫配置命令
master TO master_host=‘0.0.0.43‘, master_port=3306, master_user=‘slave‘, master_password=‘123456‘, master_log_file=‘my_binglog.000001‘, master_log_pos=107;
然後start slave
檢查salve狀態
slave:mysql> show slave status; #很多很多列
6.將主機資料 copy 過來
//清空表緩衝並且鎖住表 mysql>flush tables with read lock; //查看binlog並記錄下來 mysql>show master status; file+position就是slave複製的起點
master用mysqldump匯出
mysqldump -h192.168.1.109 -uroot -prpassoot360 --default-character-set=utf8 zanshop>/web/zanshop0817.utf8.sql
slave建好同名資料庫,匯入
mysql>source /web/zanshop0817.utf8.sql;(在mysql命令下執行,可匯入表,先建立資料庫且設定編碼為utf-8,然後要使用 use zanchaoshi; 進入資料庫)
1. //解除資料庫鎖定
2. mysql>unlock tables;
順序重啟主從兩個資料庫
7.完畢,在主要資料庫進行增刪修改,看從資料庫是否有更新。
源自:http://www.luochunhui.com/id/550
http://www.d5s.cn/archives/95
CHANGE master TO master_host=‘119.254.85.35‘, master_port=3306, master_user=‘slave‘, master_password=‘123456‘, master_log_file=‘mysql-bin.000049‘, master_grant replication slave,reload,super on *.* to ‘slave‘@‘%‘ identified by ‘123456‘;
CHANGE master TO master_host=‘119.254.85.35‘, master_port=3306, master_user=‘slave‘, master_password=‘123456‘, master_log_file=‘mysql-bin.000049‘, master_log_pos=107;
log_pos=107;
mysql主從配置