起因
最近項目上開始重構,可能會用到主從加讀寫分離的情況,就想先在本地搭一個出來試試效果,結果百度一搜出來一大堆,然而自己去踩坑的沒幾個,絕大多數(shù)都是去抄的別人的內容,關鍵是實際應用中還會出錯,瀏覽器開了接近二十個標簽頁,試了好幾個都有問題,完全用不了,時間浪費了不說,還會讓你很憋屈,所以就自己搞。
一、準備
1、首先檢查并清理系統(tǒng)中存在的mysql相關文件
# 檢查系統(tǒng)中是否存在Mysql的文件
find / -name mysql
# 刪除存在mysql的文件或文件夾
rm -rf /usr/lib64/mysql/
# 檢查是否存在mysql的相關依賴
rpm -qa|grep mysql
# 卸載mysql的依賴
rpm -e mysql-.....
2、下載對應版本的mysql安裝文件
因為我使用的是CentOS 7 64位,所以在MySQL官網中選擇如下圖的操作系統(tǒng),然后選擇tar包進行下載。
在這兒說明下,為什么我要使用tar包進行安裝,而不是使用網上普遍的一個正常安裝,另一個用rpm安裝的方法,因為如果第一個使用yum正常安裝,第二個使用本地安裝,那么無法指定安裝路徑,無法將兩個mysql放在一起進行系統(tǒng)性管理,所以我在這兒使用tar包來安裝多個實例,并且放在同一目錄下方便管理與配置。
![](/d/20211018/8e94afa4fc01f694e19d721737968f70.gif)
![](/d/20211018/ac7b5faf06e0a617c92737c28fb03bb3.gif)
# 在下載前先創(chuàng)建一個mysql用戶,為什么要創(chuàng)建MySQL用戶?
因為解壓出來的mysql文件沒有任何的屬組,以及為了避免在配置、啟動時MySQL不能讀取某些文件
,所以建議使用mysql用戶來運行mysql
adduser mysql
# 設置密碼
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
# 復制一份mysql_01并重命名為mysql_02
cp -r ./mysql_01 ./mysql_02/
# 切換到root用戶,更改兩個mysql的數(shù)組為mysql用戶,然后再切換回mysql用戶
exit
chown -R mysql:mysql /home/mysql/mysql_01/ /home/mysql/mysql_02/
su mysql
二、修改配置
接下來就是對MySQL進行配置,兩個MySQL的配置其實是差不多的,只是說路徑不同而已,在這兒我就只展示mysql_01的配置,mysql_02則將相應的路徑替換成自己的路徑即可。
1、自定義配置my.cnf
# 切換到mysql_01路徑下
cd ./mysql_01
# 創(chuàng)建配置文件my.cnf,直接使用vim編輯,保存后即可。其中###表示為必須項,#表示為可選項
vim my.cnf
----------以下是文件內容-------------
[mysqld]
### 端口號
port=10085
### 安裝目錄
basedir=/home/mysql/mysql_01/
### 數(shù)據存放路徑
datadir=/home/mysql/mysql_01/data/
### 會話文件目錄
socket=/home/mysql/mysql_01/mysql.sock
# 允許連接失敗的最大次數(shù)
max_connect_errors=10
# 服務端的字符集編碼
character-set-server=utf8
# 默認存儲引擎
default-storage-engine=INNODB
# 默認用戶
user=mysql
# 開啟慢查詢
slow_query_log=on
# 慢查詢日志文件目錄
slow_query_log_file=/home/mysql/mysql_01/slow-query.log [client]
### 連接服務端使用的端口號
port=10085 ### 會話文件
socket=/home/mysql/mysql_01/mysql.sock
# 默認字符集編碼
default-character-set=utf8 ---------------文件內容結束--------------------
# 在上面的配置中可以看到datadir項中存在data文件夾,而mysql_01下并沒有,
因此需要創(chuàng)建data文件夾 mkdir data
2、修改自帶的默認配置
接下來就需要修改mysql的默認配置信息
# 修改文件中的默認配置信息
vim ./support-files/mysql.server
# 將文件中的所有有關basedir和datadir的配置全部修改為當前的路徑
如下圖
![](/d/20211018/f0edd7bf5de8ae1f76755a2259a1d39e.gif)
以及修改該文件中加載的MySQL配置文件路徑,修改為剛才創(chuàng)建的my.cnf文件,如下圖,修改完成后,保存退出。
![](/d/20211018/c0f0030b9c98ad719950c5e234a55e5a.gif)
同樣也需要修改support-files下的另一個文件
# 修改support-files文件夾下的mysqld_multi.server文件
vim ./support-files/mysqld_multi.server
#還是修改basedir和datadir兩項屬性,如下圖所示
![](/d/20211018/1e203ee1b96333b0618c153fb52462a7.gif)
三、初始化安裝及啟動服務
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、啟動服務
# 后臺啟動當前mysql_01的mysql服務,還是需要去指定配置文件,因為在配置文件中我們設置了一個socket參數(shù),
只有按照這個配置文件去啟動,才會按照socket配置的路徑去生成,否則會自動生成在/tmp/mysql.sock,
如果mysql_02也是這么生成,則會形成覆蓋,在連接時造成只能連接一個服務,甚至報錯。
./bin/mysqld_safe --defaults-file=./my.cnf
# 使用命令查看mysql服務是否啟動,如下圖
netstat -nultp|grep 10085
![](/d/20211018/96cee1f8ae66e63ce3a05ae92d3e1abe.gif)
四、連接數(shù)據庫與修改密碼
# 通過上面可以看到mysql服務已經啟動,那么就可以連接MySQL了
./bin/mysql --socket=./mysql.sock -uroot -p # 輸入初始密碼
# 修改MySQL登錄密碼,這兒我的修改為 root,注意末尾的結束符分號
alter user root@localhost identified by "root";
![](/d/20211018/8f62ecc5a9395908ea72b957e7fcc045.gif)
同樣配置之后,啟動mysql_02,效果如下
![](/d/20211018/bfc158a65fb383487987616ee9a839de.gif)
以上就是MySQL_01的配置,同樣的MySQL_02和這個一致,只需要將對應的目錄修改為自己的文件路徑即可。當安裝上多個實例之后,就可以進行主從復制、讀寫分離等相關配置。
總結
到此這篇關于CentOS 7搭建多實例MySQL8(想要幾個搞幾個)的文章就介紹到這了,更多相關CentOS 7搭建多實例MySQL8內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Linux下安裝Mysql多實例作為數(shù)據備份服務器實現(xiàn)多主到一從多實例的備份
- MySQL多實例配置方案
- mysql使用mysqld_multi部署單機多實例的方法教程
- CentOS6.5 上部署 MySQL5.7.17 二進制安裝以及多實例配置
- 快速實現(xiàn)MySQL的部署以及一機多實例部署
- 基于mysql多實例安裝的深入解析
- Linux下MySQL多實例部署及安裝指南