CentOS 7搭建多實(shí)例MySQL8的詳細(xì)教程(想要幾個(gè)搞幾個(gè))
起因
最近項(xiàng)目上開始重構(gòu),可能會用到主從加讀寫分離的情況,就想先在本地搭一個(gè)出來試試效果,結(jié)果百度一搜出來一大堆,然而自己去踩坑的沒幾個(gè),絕大多數(shù)都是去抄的別人的內(nèi)容,關(guān)鍵是實(shí)際應(yīng)用中還會出錯(cuò),瀏覽器開了接近二十個(gè)標(biāo)簽頁,試了好幾個(gè)都有問題,完全用不了,時(shí)間浪費(fèi)了不說,還會讓你很憋屈,所以就自己搞。
一、準(zhǔn)備
1、首先檢查并清理系統(tǒng)中存在的mysql相關(guān)文件
# 檢查系統(tǒng)中是否存在Mysql的文件 find / -name mysql # 刪除存在mysql的文件或文件夾 rm -rf /usr/lib64/mysql/ # 檢查是否存在mysql的相關(guān)依賴 rpm -qa|grep mysql # 卸載mysql的依賴 rpm -e mysql-.....
2、下載對應(yīng)版本的mysql安裝文件
因?yàn)槲沂褂玫氖荂entOS 7 64位,所以在MySQL官網(wǎng)中選擇如下圖的操作系統(tǒng),然后選擇tar包進(jìn)行下載。
在這兒說明下,為什么我要使用tar包進(jìn)行安裝,而不是使用網(wǎng)上普遍的一個(gè)正常安裝,另一個(gè)用rpm安裝的方法,因?yàn)槿绻谝粋€(gè)使用yum正常安裝,第二個(gè)使用本地安裝,那么無法指定安裝路徑,無法將兩個(gè)mysql放在一起進(jìn)行系統(tǒng)性管理,所以我在這兒使用tar包來安裝多個(gè)實(shí)例,并且放在同一目錄下方便管理與配置。
# 在下載前先創(chuàng)建一個(gè)mysql用戶,為什么要?jiǎng)?chuàng)建MySQL用戶? 因?yàn)榻鈮撼鰜淼膍ysql文件沒有任何的屬組,以及為了避免在配置、啟動(dòng)時(shí)MySQL不能讀取某些文件 ,所以建議使用mysql用戶來運(yùn)行mysql adduser mysql # 設(shè)置密碼 passwd mysql # 接下來輸入兩次密碼 # 切換用戶 su mysql # 下載Mysql的tar包 wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-el7-x86_64.tar.gz # 解壓文件并重命名文件夾為 mysql_01 tar xf mysql-8.0.20-el7-x86_64.tar.gz ./mysql_01 # 復(fù)制一份mysql_01并重命名為mysql_02 cp -r ./mysql_01 ./mysql_02/ # 切換到root用戶,更改兩個(gè)mysql的數(shù)組為mysql用戶,然后再切換回mysql用戶 exit chown -R mysql:mysql /home/mysql/mysql_01/ /home/mysql/mysql_02/ su mysql
二、修改配置
接下來就是對MySQL進(jìn)行配置,兩個(gè)MySQL的配置其實(shí)是差不多的,只是說路徑不同而已,在這兒我就只展示mysql_01的配置,mysql_02則將相應(yīng)的路徑替換成自己的路徑即可。
1、自定義配置my.cnf
# 切換到mysql_01路徑下 cd ./mysql_01 # 創(chuàng)建配置文件my.cnf,直接使用vim編輯,保存后即可。其中###表示為必須項(xiàng),#表示為可選項(xiàng) vim my.cnf ----------以下是文件內(nèi)容------------- [mysqld] ### 端口號 port=10085 ### 安裝目錄 basedir=/home/mysql/mysql_01/ ### 數(shù)據(jù)存放路徑 datadir=/home/mysql/mysql_01/data/ ### 會話文件目錄 socket=/home/mysql/mysql_01/mysql.sock # 允許連接失敗的最大次數(shù) max_connect_errors=10 # 服務(wù)端的字符集編碼 character-set-server=utf8 # 默認(rèn)存儲引擎 default-storage-engine=INNODB # 默認(rèn)用戶 user=mysql # 開啟慢查詢 slow_query_log=on # 慢查詢?nèi)罩疚募夸? slow_query_log_file=/home/mysql/mysql_01/slow-query.log [client] ### 連接服務(wù)端使用的端口號 port=10085 ### 會話文件 socket=/home/mysql/mysql_01/mysql.sock # 默認(rèn)字符集編碼 default-character-set=utf8 ---------------文件內(nèi)容結(jié)束-------------------- # 在上面的配置中可以看到datadir項(xiàng)中存在data文件夾,而mysql_01下并沒有, 因此需要?jiǎng)?chuàng)建data文件夾 mkdir data
2、修改自帶的默認(rèn)配置
接下來就需要修改mysql的默認(rèn)配置信息
# 修改文件中的默認(rèn)配置信息 vim ./support-files/mysql.server # 將文件中的所有有關(guān)basedir和datadir的配置全部修改為當(dāng)前的路徑
如下圖
以及修改該文件中加載的MySQL配置文件路徑,修改為剛才創(chuàng)建的my.cnf文件,如下圖,修改完成后,保存退出。
同樣也需要修改support-files下的另一個(gè)文件
# 修改support-files文件夾下的mysqld_multi.server文件 vim ./support-files/mysqld_multi.server #還是修改basedir和datadir兩項(xiàng)屬性,如下圖所示
三、初始化安裝及啟動(dòng)服務(wù)
1、初始化安裝
# 切換到mysql_01的根目錄 cd /home/mysql/mysql_01/ # 初始化安裝 --defaults-file表示指定初始化的配置文件 --console表示將初始化信息打印在控制臺 ./bin/mysqld --defaults-file=/home/mysql/mysql_01/my.cnf --initialize --console --user=mysql # 初始化成功后,會在控制臺中打印出初始化密碼,大致格式如下 root@localhost: fa356fgss,
2、啟動(dòng)服務(wù)
# 后臺啟動(dòng)當(dāng)前mysql_01的mysql服務(wù),還是需要去指定配置文件,因?yàn)樵谂渲梦募形覀冊O(shè)置了一個(gè)socket參數(shù), 只有按照這個(gè)配置文件去啟動(dòng),才會按照socket配置的路徑去生成,否則會自動(dòng)生成在/tmp/mysql.sock, 如果mysql_02也是這么生成,則會形成覆蓋,在連接時(shí)造成只能連接一個(gè)服務(wù),甚至報(bào)錯(cuò)。 ./bin/mysqld_safe --defaults-file=./my.cnf & # 使用命令查看mysql服務(wù)是否啟動(dòng),如下圖 netstat -nultp|grep 10085
四、連接數(shù)據(jù)庫與修改密碼
# 通過上面可以看到mysql服務(wù)已經(jīng)啟動(dòng),那么就可以連接MySQL了 ./bin/mysql --socket=./mysql.sock -uroot -p # 輸入初始密碼 # 修改MySQL登錄密碼,這兒我的修改為 root,注意末尾的結(jié)束符分號 alter user root@localhost identified by "root";
同樣配置之后,啟動(dòng)mysql_02,效果如下
以上就是MySQL_01的配置,同樣的MySQL_02和這個(gè)一致,只需要將對應(yīng)的目錄修改為自己的文件路徑即可。當(dāng)安裝上多個(gè)實(shí)例之后,就可以進(jìn)行主從復(fù)制、讀寫分離等相關(guān)配置。
總結(jié)
到此這篇關(guān)于CentOS 7搭建多實(shí)例MySQL8(想要幾個(gè)搞幾個(gè))的文章就介紹到這了,更多相關(guān)CentOS 7搭建多實(shí)例MySQL8內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決MySQL因不能創(chuàng)建臨時(shí)文件而導(dǎo)致無法啟動(dòng)的方法
這篇文章主要跟大家介紹了關(guān)于解決MySQL因不能創(chuàng)建臨時(shí)文件而導(dǎo)致無法啟動(dòng)的方法,文中通過示例代碼介紹了詳細(xì)的解決方法,對大家具有一定的的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-06-06MySQL文本文件導(dǎo)入及批處理模式應(yīng)用說明
MySQL文本文件導(dǎo)入及批處理模式應(yīng)用說明,需要的朋友可以參考下。2011-09-09MySQL每晚定時(shí)彈出一個(gè)taskeng.exe的解決方法
這篇文章主要介紹了MySQL每晚定時(shí)彈出一個(gè)taskeng.exe的解決方法,需要的朋友可以參考下2018-07-07MySQL中出現(xiàn)lock?wait?timeout?exceeded問題及解決
這篇文章主要介紹了MySQL中出現(xiàn)lock?wait?timeout?exceeded問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08MySQL之使用UNION和UNION ALL合并兩個(gè)或多個(gè)SELECT語句的結(jié)果集
這篇文章主要介紹了MySQL之使用UNION和UNION ALL合并兩個(gè)或多個(gè)SELECT語句的結(jié)果集,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04不使用MySQL數(shù)據(jù)庫的五個(gè)給力理由解析
眾所周知,MySQL數(shù)據(jù)庫雖然功能未必很強(qiáng)大,但因?yàn)樗拈_源、廣泛傳播,導(dǎo)致很多人都了解到這個(gè)數(shù)據(jù)庫。2011-03-03