1. 程式人生 > 資料庫 >CentOS 7.0如何啟動多個MySQL例項教程(mysql-5.7.21)

CentOS 7.0如何啟動多個MySQL例項教程(mysql-5.7.21)

配置說明

Linux系統:CentOS-7.0

MySQL版本:5.7.21

Linux系統下啟動多個MySQL例項,目前知道有兩種方法,一種是通過官方提供的mysqld_multi.server來實現,但是我現在還沒研究這種方法是怎麼做的;另一種就是通過安裝多個MySQL伺服器的原始方法實現。我現在是通過第二種方法實現的。成功啟動2個MySQL例項。接下來介紹一下操作過程,請多指教。

一、安裝第一個MySQL(5.7.21)伺服器

首先說明下我是用二進位制包安裝mysql的:mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz

1、獲取mysql二進位制包,然後通過 tar命令解壓,通過mv mysql-5.7.21-linux-glibc2.12-x86_64 mysql_3306

命令將解壓的資料夾進行重新命名成較短的名稱,備註要使用的埠號,便於區分。至於要將解壓後的檔案放在哪裡,你自己決定,區別是,如果你不是將解壓檔案命名成mysql後直接放到/usr/local目錄下,或者通過ln在/usr/local目錄下使用mysql引用的話,你需要在my.cnf或者啟動命令引數中指定(basedir=實際的解壓檔案路徑 和 datadir=實際的結業檔案路徑/data)。這個說明其實在mysql.server中,可以使用vi命令開啟看一下。

2、看了網上很多mysql的安裝方法介紹,都會提到新增使用者組、使用者:groupadd mysql和useradd -r -g mysql -s /bin/false mysql,增加了mysql使用者和mysql使用者組。這個看你自己實際需要,因為我就是自己用,沒有安全問題,就沒有新增,而是直接用root。如果需要新增使用者和使用者組,可以網上查詢資料或者在MySQL的官方手冊中看到:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html

3、新建my.cnf或者從別處複製一份過來,主要是在初始化檔案中指定basedir、datadir、埠號以及socket等引數,下圖是我的my.cnf內容,請根據自己的實際路徑替換相關引數,放在安裝目錄下:

4、按照官方文件的安裝步驟,還需要在安裝目錄下新建一個mysql-files資料夾,具體為什麼要新建這個資料夾我還不是很清楚,哈哈,給出官方文件的內容“The mysql-files directory provides a convenient location to use as the value for the secure_file_priv system variable,which limits import and export operations to a specific directory.”

5、接下來初始化mysql,首先在安裝目錄下新增data資料夾,然後進入到安裝目錄的bin資料夾下面,執行以下命令: “./mysqld --initialize --user=root --basedir=/data/program/mysql3306 --datadir=/data/program/mysql3306/data” 。在linux中,命令帶引數時,如果引數名是全稱,就用兩個橫槓“--”,如果引數時簡稱,就用一個橫槓“-”,比如,./mysql --host=localhost 和 ./mysql -hlocalhost。在上述初始化mysql的命令中,請把引數值替換成你自己的路徑和使用者。如果你只安裝一個mysql,並且是在/usr/local/mysql這個預設目錄,就不需要指定basedir和datadir引數。如果你因為某種原因想要重新初始化,那麼你需要先把data目錄下的內容刪掉,你可以選擇刪除整個data資料夾然後新增:rm -rf data,mkdir data,然後你再執行上面的初始化命令,就可以順利重新初始化。這裡需要注意的是,初始化成功之後,會在提示資訊的末尾找到預設密碼,一定要記住了,一會兒客戶端登入的時候要用。

6、接下來建立安全傳輸所需的證書和key,在bin目錄下執行命令: “./mysql_ssl_rsa_setup --datadir=/data/program/mysql3306/data” ,同樣,將引數替換成你的值,預設的安裝目錄不需要指定datadir值。這個命令的作用官方說明如下:“This program creates the SSL certificate and key files and RSA key-pair files required to support secure connections using SSL and secure password exchange using RSA over unencrypted connections,if those files are missing.”,大概是說通過這個命令建立了在非加密連線上使用SSL和RSA進行安全傳輸所需的SSL證書和key,RSA鍵值對。

7、到此mysql的初始化就完成了,可以啟動mysql伺服器了,5.7版本以後好像都是使用mysqld_safe命令啟動服務的,也可以使用support-file目錄下的mysql.server來啟動,不過mysql.server也是使用mysqld_safe來啟動的。mysqld_safe的命令如下: “./mysqld_safe --defaults-file=/data/program/mysql3306/my.cnf --user=root --port=3306 &” ,關鍵的是要指定my.cnf路徑,因為我沒有安裝在預設目錄下,而且我們是要在一個機器上安裝兩個mysql的。這裡面要注意的是“--defaults-file”一定要作為第一個引數,不然會報錯,有相應提示;另外就是命令末尾的“&”,這個是告訴系統將mysql這個例項作為後臺程序,這樣退出命令的時候mysql伺服器才能繼續執行。

關於mysql_safe命令的詳細引數可以參考://www.jb51.net/article/52259.htm

8、啟動伺服器之後,就可以使用客戶端訪問伺服器了,在bin目錄下執行命: “./mysql -uroot -P3306 -p” ,然後提示輸入密碼,那麼你就把步驟5中的預設密碼輸入。進去之後,通過命令set password=password('new password')設定你的新密碼,否則伺服器也不會讓你操作其他東西。

9、至此,已經完成一個mysql的安裝。

二、安裝第n個MySQL(5.7.21)伺服器

有了上面的安裝過程,基本上安裝第n個mysql是跟上面的一樣,解壓安裝包,重新命名為mysql_port,通過埠號區分不同的mysql伺服器,然後將my.cnf以及上面所執行的命令中,有關路徑的引數都替換成相應的路徑,就可以了。通過制定具體路徑的方式,就可以實現一個linux機器下安裝並啟動多個mysql例項。在客戶端訪問伺服器時,需要制定哪個埠,用引數-P3306,大寫的P。

這是隻一個簡單安裝過程的記錄和學習,mysql還有很多配置和功能需要注意,後續有機會整理一下。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對我們的支援。