歡迎您光臨本站 註冊首頁

CentOS 7搭建多實例MySQL8的詳細教程

←手機掃碼閱讀     zhang3221994 @ 2020-06-08 , reply:0

起因

最近項目上開始重構,可能會用到主從加讀寫分離的情況,就想先在本地搭一個出來試試效果,結果百度一搜出來一大堆,然而自己去踩坑的沒幾個,絕大多數都是去抄的別人的內容,關鍵是實際應用中還會出錯,瀏覽器開了接近二十個標籤頁,試了好幾個都有問題,完全用不了,時間浪費了不說,還會讓你很憋屈,所以就自己搞。

一、準備

1、首先檢查並清理系統中存在的mysql相關文件

  # 檢查系統中是否存在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官網中選擇如下圖的操作系統,然後選擇tar包進行下載。

在這兒說明下,為什麼我要使用tar包進行安裝,而不是使用網上普遍的一個正常安裝,另一個用rpm安裝的方法,因為如果第一個使用yum正常安裝,第二個使用本地安裝,那麼無法指定安裝路徑,無法將兩個mysql放在一起進行系統性管理,所以我在這兒使用tar包來安裝多個實例,並且放在同一目錄下方便管理與配置。

  # 在下載前先創建一個mysql用戶,為什麼要創建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的數組為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      # 創建配置文件my.cnf,直接使用vim編輯,保存後即可。其中###表示為必須項,#表示為可選項   vim my.cnf   ----------以下是文件內容-------------   [mysqld]     ### 端口號      port=10085          ### 安裝目錄     basedir=/home/mysql/mysql_01/         ### 數據存放路徑     datadir=/home/mysql/mysql_01/data/         ### 會話文件目錄     socket=/home/mysql/mysql_01/mysql.sock        # 允許連接失敗的最大次數     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下並沒有,  因此需要創建data文件夾 mkdir data

 

2、修改自帶的默認配置

接下來就需要修改mysql的默認配置信息

  # 修改文件中的默認配置信息   vim ./support-files/mysql.server   # 將文件中的所有有關basedir和datadir的配置全部修改為當前的路徑

 

如下圖

以及修改該文件中加載的MySQL配置文件路徑,修改為剛才創建的my.cnf文件,如下圖,修改完成後,保存退出。

同樣也需要修改support-files下的另一個文件

  # 修改support-files文件夾下的mysqld_multi.server文件   vim ./support-files/mysqld_multi.server      #還是修改basedir和datadir兩項屬性,如下圖所示

 

三、初始化安裝及啟動服務

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參數,  只有按照這個配置文件去啟動,才會按照socket配置的路徑去生成,否則會自動生成在/tmp/mysql.sock,  如果mysql_02也是這麼生成,則會形成覆蓋,在連接時造成只能連接一個服務,甚至報錯。   ./bin/mysqld_safe --defaults-file=./my.cnf &      # 使用命令查看mysql服務是否啟動,如下圖   netstat -nultp|grep 10085

 

四、連接數據庫與修改密碼

  # 通過上面可以看到mysql服務已經啟動,那麼就可以連接MySQL了   ./bin/mysql --socket=./mysql.sock -uroot -p # 輸入初始密碼      # 修改MySQL登錄密碼,這兒我的修改為 root,注意末尾的結束符分號   alter user root@localhost identified by "root";

 

同樣配置之後,啟動mysql_02,效果如下

以上就是MySQL_01的配置,同樣的MySQL_02和這個一致,只需要將對應的目錄修改為自己的文件路徑即可。當安裝上多個實例之後,就可以進行主從複製、讀寫分離等相關配置。


   


[zhang3221994 ] CentOS 7搭建多實例MySQL8的詳細教程已經有235次圍觀

http://coctec.com/docs/linux/show-post-237498.html