MySQL 中怎么搭建主從高可用,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供瓊中黎族網(wǎng)站建設(shè)、瓊中黎族做網(wǎng)站、瓊中黎族網(wǎng)站設(shè)計(jì)、瓊中黎族網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、瓊中黎族企業(yè)網(wǎng)站模板建站服務(wù),10年瓊中黎族做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
操作系統(tǒng):CentOS 7.5
MySQL:mysql-5.7.29
在 CentOS 中只用使用 wget
命令下載即可,下載完成后進(jìn)行解壓:
> wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar > tar -xvf mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar mysql-community-embedded-devel-5.7.29-1.el7.x86_64.rpm mysql-community-test-5.7.29-1.el7.x86_64.rpm mysql-community-embedded-5.7.29-1.el7.x86_64.rpm mysql-community-embedded-compat-5.7.29-1.el7.x86_64.rpm mysql-community-libs-5.7.29-1.el7.x86_64.rpm mysql-community-client-5.7.29-1.el7.x86_64.rpm mysql-community-server-5.7.29-1.el7.x86_64.rpm mysql-community-devel-5.7.29-1.el7.x86_64.rpm mysql-community-libs-compat-5.7.29-1.el7.x86_64.rpm mysql-community-common-5.7.29-1.el7.x86_64.rpm
檢查移除系統(tǒng)自帶的mysql
rpm -qa | grep mariadb rpm -e mariadb-libs-5.5.41-2.el7_0.x86_64 --nodeps # 如果有的話,使用這種方式移除
上面 MySQL 的安裝包解壓后有很多組件,一般不需要全部安裝,挑常用的幾個(gè)安裝即可,并且要注意安裝順序:
rpm -ivh mysql-community-common-5.7.29-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.29-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-compat-5.7.29-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.29-1.el7.x86_64.rpm rpm -ivh mysql-community-server-5.7.29-1.el7.x86_64.rpm rpm -ivh mysql-community-devel-5.7.29-1.el7.x86_64.rpm
mysqld --initialize --user=mysql # --user 是可選的參數(shù),意思是創(chuàng)建一個(gè)名稱是 mysql 的用戶
初始化完成后,mysql 會(huì)給 root 用戶創(chuàng)建一個(gè)臨時(shí)的登錄密碼,登錄進(jìn)去后再對(duì) root 用戶的密碼進(jìn)行自定義修改,臨時(shí)密碼在 mysql 的日志中,默認(rèn)路徑是 /var/log/mysqld.log
,一般在最后一行類似下面:
A temporary password is generated for root@localhost: hSQ&zl/3m?oF
使用系統(tǒng)方式啟動(dòng) mysql,同時(shí)還把 mysql 的加入到系統(tǒng)自啟動(dòng)列表中:
systemctl start mysqld.service systemctl status mysqld.service # 檢查是否啟動(dòng)成功
使用上面日志中的臨時(shí)密碼登錄,登錄后修改密碼
mysql -uroot -p set password=password('your_new_password');
為了讓集群中的各個(gè)數(shù)據(jù)庫節(jié)點(diǎn)能正常通信,需要關(guān)閉防火墻,線上環(huán)境需要在防火墻中放行 3306 的端口
systemctl stop iptables # iptables 防火墻 systemctl stop firewalld # firewalld 防火墻,CentOS 自帶 systemctl disable firewalld.service # 徹底一點(diǎn),從開機(jī)啟動(dòng)中禁用掉
修改主庫的配置文件 /etc/my.cnf
,增加以下配置:
# log_bin server-id=1 # 設(shè)置 server-id,每個(gè)數(shù)據(jù)庫不能重復(fù),必須 log_bin=mysql-bin # 指定 binlog 的名稱,相當(dāng)于開啟 bin log, 必須 sync-binlog=1 # 開始刷新 bin log 到磁盤,每次有更新事務(wù),完成后都要馬上刷新到磁盤 binlog-ignore-db=performance_schema # binlog 中忽略的庫 binlog-ignore-db=information_schema binlog-ignore-db=sys #binlog-do-db=lagou # 可以使用這個(gè)參數(shù)指定只同步那個(gè)庫
保存退出后,重啟數(shù)據(jù)庫:
systemctl restart mysqld
設(shè)置哪些 ip 的 slave 可以從本 master 同步 binlog。
grant replication slave on *.* to 'root'@'%' identified by 'root'; # 復(fù)制授權(quán) grant all privileges on *.* to 'root'@'%' identified by 'root'; flush privileges; # 刷新權(quán)限
在查看一下數(shù)據(jù)庫作為 master 的一些狀態(tài)
mysql> show master status; +------------------+----------+--------------+-------------------------------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+-------------------------------------------+-------------------+ | mysql-bin.000001 | 869 | | performance_schema,information_schema,sys | | +------------------+----------+--------------+-------------------------------------------+-------------------
重點(diǎn)關(guān)注當(dāng)前使用的 bin log 文件名稱以及 bin log 的寫入位置。
修改每個(gè)從庫的 /etc/my.cnf
,添加一下內(nèi)容:
server-id=3 # 注意一個(gè)集群環(huán)境中的 id 不能沖突 relay_log=mysql-relay-bin # read_only=1 # 開啟只讀
重啟數(shù)據(jù)庫,然后登陸到 mysql 中做一些相關(guān)配置:
show slave status; # 查看 salve 狀態(tài),如果已經(jīng)是開啟狀態(tài),需要先 stop slave;修改配置后,在 start slave; # 設(shè)置主庫的 bin log 信息(用到了主庫中當(dāng)前 bin log 的文件名稱以及當(dāng)前寫位置) change master to master_host='192.168.0.11',master_port=3306,master_user='root',master_password='root',master_log_file='mysql-bin.000001',master_log_pos=869; show slave status; # 查看從庫狀態(tài), 第一次配置,此時(shí)連接 master 的狀態(tài)應(yīng)該是 No start slave; # 開啟 salve 模式
看完上述內(nèi)容,你們掌握MySQL 中怎么搭建主從高可用的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
本文名稱:MySQL中怎么搭建主從高可用
本文URL:http://aaarwkj.com/article40/igcsho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、網(wǎng)站收錄、網(wǎng)站設(shè)計(jì)、軟件開發(fā)、網(wǎng)站排名、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)