您好,登錄后才能下訂單哦!
MySQL中如何實現主從復制與讀寫分離,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
CentOS 5.x,6.0編譯安裝Nginx1.2.3+MySQL5.5.15+PHP5.3.6
我是再這個環境下做測試的,我是配置了1臺。利用VMware Workstation拷貝出來多臺服務器的,所以環境絕對一樣。
主數據庫服務器:192.168.10.130
從數據庫服務器:192.168.10.131
修改從服務器的配置文件,my.cnf 不一定路徑和我一樣哦,注意修改
vi etc/my.cnf
確定 server-id = 1,并確保這個ID沒有被別的MySQL服務所使用。
啟動mysql服務(192.168.10.130)
/etc/init.d/mysqld start
通過命令行登錄管理MySQL服務器
mysql -uroot -p
授權給從數據庫服務器192.168.10.131
mysql> GRANT REPLICATION SLAVE ON *.* to 'rep1'@'192.168.10.131' identified by '123';
查詢主數據庫狀態
Mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000005 | 261 | | |
+------------------+----------+--------------+------------------+
記錄下 FILE (mysql-bin.000005) 及 Position(261) 的值,在后面進行從服務器操作的時候需要用到。
修改從服務器的配置文件,my.cnf 不一定路徑和我一樣哦,注意修改
vi etc/my.cnf
將 server-id = 1修改為 server-id = 2,并確保這個ID沒有被別的MySQL服務所使用。
啟動mysql服務
/opt/mysql/init.d/mysql start
通過命令行登錄管理MySQL服務器
mysql -uroot -p
執行同步SQL語句
mysql> change master to
master_host=’192.168.10.130’,
master_user=’rep1’,
master_password=’123’,
master_log_file=’mysql-bin.000005’,
master_log_pos=261;
注意上面的數據要和主服務器一樣,否則同步會失敗!
正確執行后啟動Slave同步進程
mysql> start slave;
主從同步檢查
mysql> show slave status\G
其中Slave_IO_Running 與 Slave_SQL_Running 的值都必須為YES,才表明狀態正常。
如果不是,請檢查上面是否那一步驟有問題!可以留言給我。。。如果都YES 可以進入下一步操作
鎖定主服務器mysql:
mysql> FLUSH TABLES WITH READ LOCK;
鎖定從服務器mysql:
mysql> FLUSH TABLES WITH READ LOCK;
將主服務器的數據文件(整個/opt/mysql/data目錄)復制到從服務器,建議通過tar歸檔壓縮后再傳到從服務器解壓覆蓋。
開啟主服務器mysql:
mysql> UNLOCK TABLES;
開啟從服務器mysql:
mysql> UNLOCK TABLES;
在主服務器上操作:
mysql> create database first_db; mysql> use first_db; mysql> create table first_tb(id int(3),name char(10)); mysql> INSERT INTO `first_tb` VALUES ('1', '1');
在從服務器上查看....
mysql> show databases;
=============================
+--------------------+
| Database |
+--------------------+
| information_schema |
| first_db |
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.01 sec)
=============================
看完上述內容,你們掌握MySQL中如何實現主從復制與讀寫分離的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。