本篇內(nèi)容介紹了“MySQL5.5.23主從復制配置方法”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)建站專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、正寧網(wǎng)站定制設(shè)計、自適應品牌網(wǎng)站建設(shè)、H5建站、商城開發(fā)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應式網(wǎng)頁設(shè)計等建站業(yè)務,價格優(yōu)惠性價比高,為正寧等各大城市提供網(wǎng)站開發(fā)制作服務。
mysql的主從復制是一個很成熟的開源架構(gòu),很多IT公司都喜歡使用這種方案。這種方案的優(yōu)點比較明顯:1、在從庫上執(zhí)行查詢,降低主庫的壓力。2、在從庫上進行備份,可以避免備份期間影響主庫的性能和服務。3、在主庫出現(xiàn)問題時,可以方便的切換到從庫,以避免業(yè)務停滯。
下面具體介紹一下配置的過程:
主庫:10.4.14.51
從庫:10.4.14.52
操作系統(tǒng):centos6.4
服務器:HP580G7
一、在兩臺服務器上安裝MYSQL
MYSQL的安裝采用源碼編譯的方式,這樣的性能會比較好。
#useradd mysql
#passwd mysql
#groupadd mysql
#useradd -g mysql mysql
#mkdir -p /data/local/mysql
#mkdir -p /data/mysql/data
#chown -R mysql:mysql /data/local/mysql
#chmod -R 755 /data/local/mysql
#chown -R mysql:mysql /data/mysql
#chmod -R 755 /data/mysql
#yum -y install cmake bison ncurses ncurses-devel gcc-c++ libstdc++
(可以配置本地YUM源或外部鏡像源)
#tar zxvf mysql-5.5.23.tar.gz
#cd mysql-5.5.23
#cmake -DCMAKE_INSTALL_PREFIX=/data/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data/mysql/data
#make && make install
二、MYSQL的主從復制配置
1、設(shè)置主庫
編輯/etc/my.cnf
在[mysqld]下加入
server-id = 1
binlog-ignore-db = mysql
binlog-ignore-db = test
binlog-do-db = meihui7
進入MYSQL
mysql> grant replication slave on *.* to meihui7@10.4.14.52 identified by '123456';
Query OK, 0 rows affected (0.00 sec)
然后檢查一下,是否創(chuàng)建成功
mysql> select user,host from mysql.user;
+---------+-----------------------+
| user | host |
+---------+-----------------------+
| meihui7 | 10.4.14.52 |
| root | 127.0.0.1 |
| root | ::1 |
| | localhost |
| root | localhost |
| | localhost.localdomain |
| root | localhost.localdomain |
+---------+-----------------------+
7 rows in set (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000015 | 421 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
在這里需要記下FILE和Position的值,在從庫上配置需要用到。
2、設(shè)置從庫
編輯/etc/my.cnf
在[mysqld]下加入
server-id = 2 #注意如果配置文件中有此句,也可直接啟用同時把server-id=1屏蔽
replicate-do-db = meihui7
replicate-ignore-db = mysql
replicate-ignore-db = test
保存退出
mysql> change master to master_host='10.4.14.51',master_user='meihui7',master_password='123456', master_log_file='mysql-bin.000015',master_log_pos=421;
Query OK, 0 rows affected (0.02 sec)
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
mysql> show slave status\G;
注意這兩項要為YES
如果有報錯,比如
Slave_IO_Running: No
Slave_SQL_Running: Yes
Last_IO_Errno: 1593
Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).
這個一般是說從庫和主庫上的SERVER-ID一樣了,導致出錯。
可以去修改MY.CNF文件,也可以這樣來更改
查看server-id
mysql> show variables like 'server_id';
手動修改server-id
mysql> set global server_id=2; #此處的數(shù)值和my.cnf里設(shè)置的一樣就行
然后啟動SLAVE
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.4.14.51
Master_User: meihui7
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000015
Read_Master_Log_Pos: 421
Relay_Log_File: test2-relay-bin.000019
Relay_Log_Pos: 567
Relay_Master_Log_File: mysql-bin.000015
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
好了,都正常了。
有時候在啟動SLAVE時,會報這個錯。
mysql> start slave;
ERROR 1201 (HY000): Could not initialize master info structure; more error messages can be found in the MySQL error log
出現(xiàn)這個問題的原因是之前曾做過主從復制!
解決方案是:
運行命令 stop slave;
成功執(zhí)行后繼續(xù)運行 reset slave;
然后重新設(shè)置主從復制,再start slave
補充:如果開始的環(huán)境不是主從架構(gòu),運行一段時間已經(jīng)有了數(shù)據(jù),這時候要先在主機上加鎖:flush tables with read lock;通過mysqldump備份一下,然后在從庫上導入。再做主從的配置。然后解鎖:unlock tables;show slave
status\G;
三、驗證主從復制
在10.4.14.51上的meihui7上建張表
mysql> create table t1 (PID int,name varchar(20));
Query OK, 0 rows affected (0.04 sec)
然后再在10.4.14.52的從庫上檢查一下
mysql> use meihui7;
Database changed
mysql> show tables;
+-------------------+
| Tables_in_meihui7 |
+-------------------+
| t1 |
+-------------------+
1 row in set (0.00 sec)
發(fā)現(xiàn)已經(jīng)有了,同步成功。
總結(jié):mysql的主從復制很快,一般來說小數(shù)據(jù)量的改變感覺不到延遲。通常這種模式適合對延時性要求低的工作環(huán)境,比如論壇和相冊空間等。
注意:
由于MySQL不同版本之間的(二進制日志)binlog格式可能會不一樣,因此最好的搭配組合是Master的MySQL版本和Slave的版本相同或者更低,Master的版本肯定不能高于Slave版本。
“mysql5.5.23主從復制配置方法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
網(wǎng)站題目:mysql5.5.23主從復制配置方法
分享URL:http://aaarwkj.com/article48/igehhp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、關(guān)鍵詞優(yōu)化、網(wǎng)站收錄、建站公司、移動網(wǎng)站建設(shè)、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)