国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

MySQL主從配置

2019-11-09 13:33:52
字體:
供稿:網(wǎng)友

前言

網(wǎng)上關(guān)于MySQL的主從配置教程相當(dāng)多,但也不乏很多的坑。這里只留作筆記使用。

測試環(huán)境

2臺或以上linux服務(wù)器 為了篇幅,這里只用2臺。 master主服務(wù)器地址:192.168.1.2 slave從服務(wù)器地址:192.168.1.3

OS Debian 8.7

MySQL Community Server 5.6.35

環(huán)境搭建

如果沒有安裝MySQL服務(wù),可通過官方提供的APT進(jìn)行安裝:https://dev.mysql.com/downloads/repo/apt/ 點(diǎn)擊下方的download,下載一個deb包的源,然后安裝這個deb包,之后更新源,安裝mysql-server即可。 具體操作如下:

切換到root用戶,如果沒有該權(quán)限的話,使用sudo命令也可以,嫌麻煩直接切到root了# su - root下載、安裝APT源# wget https://dev.mysql.com/get/mysql-apt-config_0.8.1-1_all.deb# dpkg -i mysql-apt-config_0.8.1-1_all.deb更新APT源,安裝MySQL服務(wù)# apt-get update && apt-get install mysql-server

在兩臺服務(wù)器上都做如上步驟,確保安裝的MySQL 版本一致即可。

master主服務(wù)器配置

編輯mysql配置文件

# vim /etc/mysql/my.cnf[mysqld]下面修改bind-address的值為192.168.1.2,默認(rèn)值是127.0.0.1

繼續(xù)在[mysqld]下方添加

character-set-server = utf8 #設(shè)置默認(rèn)數(shù)據(jù)庫編碼為utf8,防止亂碼問題。server-id = 1 # 設(shè)置服務(wù)器標(biāo)識,非常重要必須唯一。log_bin = /var/log/mysql/binlog/mysql-bin.log # 開啟binlog,主從復(fù)制就是基于這個的必須開啟。# binlog_do_db = # 只同步復(fù)制指定的數(shù)據(jù)庫,不寫默認(rèn)復(fù)制所有數(shù)據(jù)庫# binlog_ignore_db= # 忽略同步指定的數(shù)據(jù)庫

最后保存退出,重啟服務(wù)。

# systemctl restart mysql.service

添加同步用戶

使用mysql root用戶登進(jìn)master數(shù)據(jù)庫:# mysql -uroot -p創(chuàng)建給slave服務(wù)器用來備份的用戶

mysql> grant select,insert,update,delete on *.* to child@"%" identified by "lu123";

授權(quán)給slave服務(wù)器 mysql> grant replication slave on *.* to 'child'@'192.168.1.3' identified by 'lu123';

如果是2臺或多臺slave,這里就還要根據(jù)slave服務(wù)器ip多授權(quán)幾次,如: mysql> grant replication slave on *.* to 'child'@'192.168.1.4' identified by 'lu123';

刷新權(quán)限 mysql> flush PRivileges;

退出,重啟MySQL服務(wù)

mysql> exit# systemctl restart mysql.service再次登錄master數(shù)據(jù)庫,查看bin文件和position,后面配置slave需要# mysql -uroot -pmysql> show master status;

mysql_binlog

記住FilePosition字段的值。

配置slave服務(wù)器

網(wǎng)上很多教程都是在my.cnf上面添加mast-user、mast-post之類的,這些在mysql 5.6之前可以,但是后面就不行了。

首先還是先編輯配置文件

# vim /etc/mysql/my.cnf[mysqld]下面修改bind-address的值為192.168.1.3,默認(rèn)值是127.0.0.1

繼續(xù)在[mysqld]下方添加

character-set-server = utf8 #設(shè)置默認(rèn)數(shù)據(jù)庫編碼為utf8,防止亂碼問題。server-id = 2 # 設(shè)置服務(wù)器標(biāo)識,非常重要必須唯一。#log_bin = /var/log/mysql/binlog/mysql-bin.log # 開啟binlog,主從復(fù)制就是基于這個的,如果僅擁有slave服務(wù)的話,可以不用開啟這個。如果是這個slave還要作為其他slave的master服務(wù)器的話就需要開啟了log-slave-updates # 可以讓slave扮演其它slave的masterslave-skip-errors=allslave-net-timeout=60

最后保存退出,重啟服務(wù)。

# systemctl restart mysql.service

指定master

在slave服務(wù)器上,通過mysql客戶端登入服務(wù)器,依次執(zhí)行以下命令:

$ mysql -uroot -pmysql> stop slave;mysql> change master to master_host='192.168.1.2',master_user='child',master_passWord='lu123',master_log_file='mysql-bin.000232', master_log_pos=120; mysql> start slave;

注意:master_log_filemaster_log_pos就是我們上面在master服務(wù)器通過下面命令所查看到的值:

mysql> show master status;

最后看一下狀態(tài),是否有出現(xiàn)錯誤:

mysql> show slave status /G;

出現(xiàn)這個表示正常: slave_running

驗證

好了,基本上配置都完成了。我們最后再測試驗證一下。

首先在master主服務(wù)器上創(chuàng)建一個數(shù)據(jù)庫和表,并且插入測試數(shù)據(jù),看下slave服務(wù)器是否有同步過來。mysql> CREATE DATABASE demo;mysql> USE demo;mysql> CREATE TABLE student(id INT PRIMARY KEY AUTO_INCREMENT, name varchar(20));mysql> INSERT INTO student(name) VALUES ('小明'), ('小盧');然后在slave服務(wù)器上登錄mysql,并執(zhí)行以下命令:mysql> SHOW DATABASES;mysql> USE demo;mysql> SHOW TABLES;mysql> SELECT * FROM student;

student 執(zhí)行以上命令,可以查看到在master服務(wù)上創(chuàng)建的內(nèi)容都已經(jīng)同步到slave上面了。 但是最后需要注意,如果是在slave服務(wù)器上的增刪查改,其master主服務(wù)器是不會同步的。 如果需要兩邊都同步,那就要做Master-Master結(jié)構(gòu)了,這又是另外一篇啦。

總結(jié)

我覺得,一般的小型公司這樣的結(jié)構(gòu)就已經(jīng)差不多足夠了,如果是中大型的話,就需要更復(fù)雜的架構(gòu)了。后面需要學(xué)習(xí)的地方還很多啊,共勉。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 建德市| 红原县| 闽侯县| 泸西县| 会昌县| 隆尧县| 南昌市| 无棣县| 孟津县| 诏安县| 高淳县| 赤峰市| 丰城市| 托克托县| 勃利县| 洛阳市| 巴塘县| 胶南市| 惠来县| 东乌珠穆沁旗| 彭水| 虹口区| 安达市| 栾城县| 河北省| 阿图什市| 乾安县| 鹰潭市| 淮滨县| 凭祥市| 灌阳县| 德州市| 海门市| 来宾市| 裕民县| 仙游县| 绥芬河市| 双城市| 泉州市| 新乐市| 新津县|