溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

mysql5.5.23主從復(fù)制配置方法

發(fā)布時(shí)間:2021-07-24 14:45:15 來(lái)源:億速云 閱讀:193 作者:chen 欄目:云計(jì)算

本篇內(nèi)容介紹了“mysql5.5.23主從復(fù)制配置方法”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

   mysql的主從復(fù)制是一個(gè)很成熟的開源架構(gòu),很多IT公司都喜歡使用這種方案。這種方案的優(yōu)點(diǎn)比較明顯:1、在從庫(kù)上執(zhí)行查詢,降低主庫(kù)的壓力。2、在從庫(kù)上進(jìn)行備份,可以避免備份期間影響主庫(kù)的性能和服務(wù)。3、在主庫(kù)出現(xiàn)問題時(shí),可以方便的切換到從庫(kù),以避免業(yè)務(wù)停滯。

   下面具體介紹一下配置的過程:

   主庫(kù):10.4.14.51  

   從庫(kù):10.4.14.52  

   操作系統(tǒng):centos6.4  

   服務(wù)器:HP580G7

一、在兩臺(tái)服務(wù)器上安裝MYSQL

   MYSQL的安裝采用源碼編譯的方式,這樣的性能會(huì)比較好。    

#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的主從復(fù)制配置

1、設(shè)置主庫(kù)

編輯/etc/my.cnf

在[mysqld]下加入

server-id = 1

binlog-ignore-db = mysql

binlog-ignore-db = test

binlog-do-db = meihui7

進(jìn)入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的值,在從庫(kù)上配置需要用到。

2、設(shè)置從庫(kù)

編輯/etc/my.cnf

在[mysqld]下加入

server-id = 2      #注意如果配置文件中有此句,也可直接啟用同時(shí)把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;

mysql5.5.23主從復(fù)制配置方法

注意這兩項(xiàng)要為YES

如果有報(bào)錯(cuò),比如

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).

這個(gè)一般是說從庫(kù)和主庫(kù)上的SERVER-ID一樣了,導(dǎo)致出錯(cuò)。

可以去修改MY.CNF文件,也可以這樣來(lái)更改

查看server-id
mysql> show variables like 'server_id';
手動(dòng)修改server-id
mysql> set global server_id=2;       #此處的數(shù)值和my.cnf里設(shè)置的一樣就行

然后啟動(dòng)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


好了,都正常了。

有時(shí)候在啟動(dòng)SLAVE時(shí),會(huì)報(bào)這個(gè)錯(cuò)。

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)這個(gè)問題的原因是之前曾做過主從復(fù)制!

解決方案是:

  • 運(yùn)行命令 stop slave;

  • 成功執(zhí)行后繼續(xù)運(yùn)行 reset slave;

  • 然后重新設(shè)置主從復(fù)制,再start slave

補(bǔ)充:如果開始的環(huán)境不是主從架構(gòu),運(yùn)行一段時(shí)間已經(jīng)有了數(shù)據(jù),這時(shí)候要先在主機(jī)上加鎖:flush tables with read lock;通過mysqldump備份一下,然后在從庫(kù)上導(dǎo)入。再做主從的配置。然后解鎖:unlock tables;show slave      

status\G;

三、驗(yàn)證主從復(fù)制

在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的從庫(kù)上檢查一下

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的主從復(fù)制很快,一般來(lái)說小數(shù)據(jù)量的改變感覺不到延遲。通常這種模式適合對(duì)延時(shí)性要求低的工作環(huán)境,比如論壇和相冊(cè)空間等。

注意:

由于MySQL不同版本之間的(二進(jìn)制日志)binlog格式可能會(huì)不一樣,因此最好的搭配組合是Master的MySQL版本和Slave的版本相同或者更低,Master的版本肯定不能高于Slave版本。

“mysql5.5.23主從復(fù)制配置方法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI