Linux—一臺主機部署多版本mysql服務和mysql例項

April發表於2018-01-17

1.背景

伺服器上有mysql5.5.38,要求升級為mysql5.6

2.方法

為了降低影響範圍,可持續作業,決定在現有基礎上部署mysql5.6,即部署多版本mysql

3.注意事項

1.與現有mysql安裝目錄不能相同
2.與現有mysql資料庫檔案目錄不能相同
3.與現有msql的啟動埠不能相同(預設3306)
4.與現有mysql的服務的socket不能相同,即my.cnf裡面的socket的設定不能一樣
5.與現有mysql的服務的pid檔案不能相同,即my.cnf裡面的pid-filed設定不能一樣

4.步驟

1.建立使用者組和使用者&建立目錄

建立使用者組和使用者

groupadd mysql
useradd -g mysql mysql

建立目錄

mkdir /home/mysql/base
mkdit /home/mysql/data
chrom -R mysql:mysql base
chrom -R mysql:mysql data

2.下載原始碼包&解壓

下載地址:https://dev.mysql.com/downloa…
選項Select Operating System:linux-generic

wget https://dev.mysql.com/get/Dow…
tar -zxvf mysql-5.6.37-linux-glibc2.12-x86_64.tar.gz
cp -r mysql-5.6.37-linux-glibc2.12-x86_64 /home/mysql/base //複製解壓後的包
cd /home/mysql/base
mv mysql-5.6.37-linux-glibc2.12-x86_64 mysql-5.6.37 //重新命名資料夾

3.安裝

cd /home/mysql/base/mysql-5.6.37/scripts
mysql_install_db –basedir=/home/mysql/base/mysql-5.6.37 –datadir=/home/mysql/data/5.6.37/st01 –user=mysql

安裝後可檢視資料庫目錄有如下檔案,建立另一個埠的mysql服務可直接複製這個資料夾

cd /home/mysql/data/5.6.37/st01
ll -ah
total 110600
-rw-rw—-. 1 mysql mysql 12582912 Sep 21 23:19 ibdata1
-rw-rw—-. 1 mysql mysql 50331648 Sep 21 23:19 ib_logfile0
-rw-rw—-. 1 mysql mysql 50331648 Sep 21 23:19 ib_logfile1
drwx——. 2 mysql mysql 4096 Sep 21 23:19 mysql
drwx——. 2 mysql mysql 4096 Sep 21 23:19 performance_schema
drwx——. 2 mysql mysql 6 Sep 21 23:19 test

4.配置檔案設定

複製一份配置檔案

cd /home/mysql/data/mysql-5.6.37/st01
cp /home/mysql/base/5.6.16/support-files/my-default.cnf ./my.cnf

修改配置檔案

vi ./my.cnf
port = 9701
socket = /home/mysql/data/5.6.37/st01/mysql.sock
basedir = /home/mysql/base/5.6.37
datadir = /home/mysql/data/5.6.37/st01
……
[mysqld_safe]
log-error = /home/mysql/data/5.6.37/st01/mysqld.log
pid-file = /home/mysql/data/5.6.37/st01/mysql.pid

5.服務管理

1.啟動服務

/home/mysql/base/5.6.37/bin/mysqld_safe –defaults-file=./my.cnf –user=mysql&

2.檢視服務
ps檢視mysql程式

ps -ef | grep mysql

也可以檢視log資訊看啟動情況

cat /home/mysql/data/5.6.37/st01/mysqld.log

3.關閉服務

/home/mysql/base/5.6.37/bin/mysqladmin -P 9701 -S /home/mysql/data/5.6.37/st01/mysql.sock -u root -p shutdown

暴力關閉(有資料丟失風險)

ps -ef | grep 埠號 //命令結果第二列為程式號
kill -9 程式號 //強制殺掉程式

6.使用者設定

6.1 本地訪問
安裝好後,mysql預設只有root使用者(此使用者是mysql使用者,而非Linux使用者),並且沒有密碼

1.給預設的root使用者設定密碼(設定後只允許localhost本地訪問)

/home/mysql/base/5.6.37/bin/mysqladmin -P 9701 -S /home/mysql/data/5.6.37/st01/mysql.sock -u root password `password123`

2.給預設的root使用者修改密碼

/home/mysql/base/5.6.37/bin/mysqladmin -P 9701 -S /home/mysql/data/5.6.37/st01/mysql.sock -u root -p password `password1234`

6.2 遠端訪問

1.進入mysql

/home/mysql/base/5.6.37/bin/mysql -P 9701 -S /home/mysql/data/5.6.37/st01/mysql.sock -u root -p

按提示輸入密碼

2.1 方法一:grant 賦予使用者root所有許可權
grant 許可權1,許可權2,…許可權n on 資料庫名稱.表名稱 to 使用者名稱@使用者地址 identified by ‘連線口令’;

mysql>grant all privileges on *.* to `root`@`%` identified by `password` with grant option;

2.2 方法二:root對應的host成%,表示可以任意IP地址登入

mysql>update user set host = `%` where user = `root`;

3.重新整理配置後退出

mysql>flush privileges;
mysql>exit;

相關文章