在實(shí)際的生產(chǎn)環(huán)境中,為了確保數(shù)據(jù)庫(kù)的穩(wěn)定性,我們一般會(huì)給數(shù)據(jù)庫(kù)配置雙機(jī)熱備機(jī)制,這樣在master數(shù)據(jù)庫(kù)崩潰后,slave數(shù)據(jù)庫(kù)可以立即切換成主數(shù)據(jù)庫(kù),通過(guò)主從復(fù)制的方式將數(shù)據(jù)從主庫(kù)同步至從庫(kù),在業(yè)務(wù)代碼中編寫(xiě)代碼實(shí)現(xiàn)讀寫(xiě)分離(讓主數(shù)據(jù)庫(kù)處理 事務(wù)性增、改、刪操作,而從數(shù)據(jù)庫(kù)處理查詢操作)來(lái)提升數(shù)據(jù)庫(kù)的并發(fā)負(fù)載能力。

下面我們使用最新版本的Mysql數(shù)據(jù)庫(kù)(8.0.16)結(jié)合SpringBoot實(shí)現(xiàn)這一完整步驟(一主一從)。
安裝配置mysql
從 https://dev.mysql.com/downloads/mysql/頁(yè)面下載mysql安裝包,我這里下載的是mysql8.0.16 Linux-Generic.
準(zhǔn)備兩臺(tái)虛擬機(jī)用作安裝mysql,并將下載后的文件mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz上傳至服務(wù)器/app/mysql
192.168.249.131 CENTOS7 主
192.168.249.129 CENTOS7 從
查看防火墻狀態(tài),如果啟動(dòng)需要先關(guān)閉防火墻
service firewalld status ## 查看防火墻狀態(tài)service firewalld stop ## 關(guān)閉防火墻使用如下命令將xz文件解壓成tar文件xz -d mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz
解壓安裝包
tar -xvf mysql-8.0.16-linux-gl-ibc2.12-x86_64.tar
在/app/mysql下建立data文件夾,用于存放數(shù)據(jù)
創(chuàng)建mysql用戶組和mysql用戶
groupadd mysql ## 創(chuàng)建用戶組useradd -g mysql -d /app/mysql mysql ## 在用戶組下創(chuàng)建mysql用戶并授權(quán)相關(guān)目錄groupdel mysql ## 刪除用戶組名(若報(bào)已存在相關(guān)用戶組)userdel mysql ## 刪除用戶(若報(bào)已存在相關(guān)用戶)
初始化安裝mysql數(shù)據(jù)庫(kù)
./mysql-8.0.16-linux-glibc2.12-x86_64/bin/mysqld --user=mysql --basedir=/app/mysql --datadir=/app/mysql/data --initialize2019-07-01T02:05:52.681626Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.2019-07-01T02:05:52.681694Z 0 [System] [MY-013169] [Server] /app/mysql/mysql-8.0.16-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.16) initializing of server in progress as process 14792019-07-01T02:05:52.681726Z 0 [ERROR] [MY-010338] [Server] Can't find error-message file '/app/mysql/share/errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuration directive.2019-07-01T02:05:55.713747Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: xa6(H>rK/r<E2019-07-01T02:05:57.303240Z 0 [System] [MY-013170] [Server] /app/mysql/mysql-8.0.16-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.16) initializing of server has completed
注意,此時(shí)mysql會(huì)生成一個(gè)默認(rèn)的臨時(shí)密碼,如上所示,需要先保存下來(lái)然后修改
建立mysql服務(wù)并增加執(zhí)行權(quán)限
cp mysql-8.0.16-linux-glibc2.12-x86_64/support-files/mysql.server /etc/init.d/mysqld
修改mysql配置文件 vi /etc/my.cnf 增加如下配置
[mysqld]port=3306basedir=/app/mysql/mysql-8.0.16-linux-glibc2.12-x86_64datadir=/app/mysql/datasocket=/tmp/mysql.socksymbolic-links=0[mysqld_safe]log-error=/app/mysql/data/log/error.logpid-file=/app/mysql/data/mysql.piduser=mysqltmpdir=/tmpcharacter_set_server=utf8default-storage-engine=INNODBinit_connect='SET NAMES utf8'!includedir /etc/my.cnf.d
新聞熱點(diǎn)
疑難解答
圖片精選