Mysql最簡單的複製環境部署方法,mysql環境部署
最簡單的複製環境部署方法
這裡環境如下:
Master一直沒有寫操作
Master和Slave在一台虛擬機器中,連接埠號碼分別為3306和3307
1.關閉
Master
資料庫服務
mysqladmin -umysql -p -S /data/mysqldata/3306/mysql.sock shutdown
2.複製資料檔案
cp -r /data/mysqldata/3306 /data/mysqldata/3307
3.編輯
Master
的參數檔案
在[mysqld]區塊中添加
server_id =1log_bin =../binlog/mysql-bin
binlog必須要開啟
同一套複製環境中的每個成員必須要有獨立的server_id
。server_id
的取值範圍在1~(2的32次方 -1)
參數配置好後,就可以啟動資料庫了,但是不要有寫操作
4.建立複製專用賬戶
在Master端
grant replication slave on *.* to 'repl'@'192.168.134.%' identified by 'repl';
這樣就建立了賬戶
(mysql@localhost) [(none)]> select user,host from mysql.user;+--------+---------------+| user | host |+--------+---------------+| repl | 192.168.134.% || backup | localhost || mysql | localhost |+--------+---------------+
然後,擷取Master
端資訊
(mysql@localhost) [(none)]> show master status;+------------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+------------------+----------+--------------+------------------+-------------------+| mysql-bin.000003 | 331 | | | |+------------------+----------+--------------+------------------+-------------------+
5.配置
Slave
端選項檔案
在[mysqld]區塊中添加
server_id =2log_bin =../binlog/mysql-bin --非必選項
Slave端並不是必須開啟bin-log
sed -i 's/3306/3307/g' /data/mysqldata/330/my.cnf
還需要刪除Slave
端的auto.cnf檔案
rm /data/mysqldata/3307/data/auto.cnf
這個檔案中給儲存了一項名為server-uuid
的重要參數,它用來唯一標識Mysql服務,我們的環境是直接複製的主庫,所以需要刪除它。Slave節點的資料庫服務啟動時會自動重建一個
6.啟動
Slave
端服務
[mysql@master 3307]$ mysql -umysql -p -S /data/mysqldata/3307/mysql.sock Enter password: Welcome to the MySQL monitor. Commands end with ; or \g....配置Slave到Master的串連:mysql> change master to -> master_host='192.168.134.128', -> master_port=3306, -> master_user='repl', -> master_password='repl', -> master_log_file='mysql-bin.000003', -> master_log_pos=331;Query OK, 0 rows affected, 2 warnings (0.05 sec)啟動Slave端的應用服務:mysql> start slave;
之後就可以在主庫建立個表,插入資料,然後去從庫看看,如果資料一致,那麼就OK了
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。