首頁 > 軟體

MySQL8.0.20單機多範例部署步驟

2022-05-15 16:00:28

0.環境需要

1.準備Linux環境(系統:CentOS7)
2.準備MySQL安裝包(版本:8.0.20)
3.安裝方式為:msyql解壓安裝

1.安裝步驟

1.下載解壓安裝的mysql安裝包檔案

下載地址:https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.20-el7-x86_64.tar.gz

2.上傳解壓縮(我這裡的上傳為:xhell,當然也可使用其他方式)

## 建立mysql目錄
mkdir -p /usr/app/mysql
## 移動到目錄下
cd /usr/app/mysql
## 使用xhell上傳檔案到伺服器
## 解壓後重新命名
tar -zxvf mysql-8.0.20-el7-x86_64.tar.gz
mv mysql-8.0.20-el7-x86_64 mysql-8.0

3.在mysql目錄建立建立資料檔案存放路徑並賦權

## 建立各範例資料存放目錄
mkdir -p /usr/app/mysql/mysql-8.0/{3306,3307,3308}/data
## 建立各個mysql對應error紀錄檔
mkdir -p /usr/app/mysql/mysql-8.0/{3306,3307,3308}/log
touch /usr/app/mysql/mysql-8.0/3306/log/error.log
touch /usr/app/mysql/mysql-8.0/3307/log/error.log
touch /usr/app/mysql/mysql-8.0/3308/log/error.log
## 建立mysql使用者組及使用者
groupadd mysql
useradd -g mysql mysql
## 目錄歸屬賦權
chown -R mysql:mysql /usr/app/mysql

4.設定my.cnf檔案

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html

[client]
default-character-set=utf8mb4

[mysqld]
user=mysql
basedir=/usr/app/mysql/mysql-8.0
lower_case_table_names=1

[mysqld_multi]
mysqld=/usr/app/mysql/mysql-8.0/bin/mysqld_safe
mysqladmin=/usr/app/mysql/mysql-8.0/bin/mysqladmin
log=/usr/app/mysql/mysql-8.0/mysqld_multi.log

# 3306 資料庫範例
[mysqld3306]
port=3306
server_id=1
mysqld=mysqld
mysqladmin=mysqladmin
datadir=/usr/app/mysql/mysql-8.0/3306/data
socket=/tmp/mysql_3306.sock
log-error=/usr/app/mysql/mysql-8.0/3306/log/error.log
pid-file=/usr/app/mysql/mysql-8.0/3306/mysql3306.pid

## skip-grant-tables #用於跳過密碼登入
character_set_server=utf8mb4
init_connect='SET NAMES utf8mb4'
lower_case_table_names=1
explicit_defaults_for_timestamp=true


# 3307 資料庫範例
[mysqld3307]
port=3307
server_id=2
mysqld=mysqld
mysqladmin=mysqladmin
datadir=/usr/app/mysql/mysql-8.0/3307/data
socket=/tmp/mysql_3307.sock
log-error=/usr/app/mysql/mysql-8.0/3307/log/error.log
pid-file=/usr/app/mysql/mysql-8.0/3307/mysql3307.pid
# lc_messages_dir=/usr/local/mysql/share/english

## 預設最大連線數設定
# max_connections=300
character_set_server=utf8mb4
init_connect='SET NAMES utf8mb4'
lower_case_table_names=1
explicit_defaults_for_timestamp=true

# 3308 資料庫範例
[mysqld3308]
port=3308
server_id=3
mysqld=mysqld
mysqladmin=mysqladmin
datadir=/usr/app/mysql/mysql-8.0/3308/data
socket=/tmp/mysql_3308.sock
log-error=/usr/app/mysql/mysql-8.0/3308/log/error.log
pid-file=/usr/app/mysql/mysql-8.0/3308/mysql3308.pid
# lc_messages_dir=/usr/local/mysql/share/english

character_set_server=utf8mb4
init_connect='SET NAMES utf8mb4'
lower_case_table_names=1
explicit_defaults_for_timestamp=true

5.初始化各範例資料庫

/usr/app/mysql/mysql-8.0/bin/mysqld --defaults-file=/etc/my.cnf --datadir=/usr/app/mysql/mysql-8.0/3306/data/ --initialize
/usr/app/mysql/mysql-8.0/bin/mysqld --defaults-file=/etc/my.cnf --datadir=/usr/app/mysql/mysql-8.0/3307/data/ --initialize
/usr/app/mysql/mysql-8.0/bin/mysqld --defaults-file=/etc/my.cnf --datadir=/usr/app/mysql/mysql-8.0/3308/data/ --initialize

注意記住臨時密碼,後面登入時使用,例如:

2022-04-04T15:12:39.011998Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: sJH):ayhH5cW
2022-04-04T15:14:24.214337Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: <>y)qhyh/4E7
2022-04-04T15:15:32.283026Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: s7qrjzwqI<wd

6.設定msyql環境變數

新增了環境變數,作業系統才能夠自己找到mysql、mysqld_multi等命令的位置

## 在/etc/profile 檔案末尾新增
export PATH=/usr/app/mysql/mysql-8.0/bin:$PATH

## 使環境變數生效
source /etc/profile

7.啟動與檢視 mysql 服務(需指定組態檔)

## 啟動mysql
mysqld_multi --defaults-file=/etc/my.cnf start 3306
mysqld_multi --defaults-file=/etc/my.cnf start 3307
mysqld_multi --defaults-file=/etc/my.cnf start 3308

## 檢視mysql服務
mysqld_multi --defaults-file=/etc/my.cnf report

啟動不成功,檢視 mysqld_multi.log 紀錄檔或各範例目錄下的錯誤紀錄檔

cat /usr/app/mysql/mysql-8.0/mysqld_multi.log
cat /usr/app/mysql/mysql-8.0/3306/log/error.log

8.設定遠端存取密碼

## 伺服器登入 (注意:另外兩個範例同樣如此。)
mysql -uroot -p -S /tmp/mysql_3306.sock
## 輸入上面初始化資料庫時的臨時密碼

## 設定本地存取密碼,例如:Mysql@123,注意密碼為高安保等級(例如大小寫和特殊字元的組合),不然無法使用其他操作
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Mysql@123';
## 進入mysql資料
use mysql;
## 更新root資訊
update user set host='%' where user='root';
## 重新整理
flush privileges;
# 授權root使用者可以遠端登陸
GRANT ALL ON *.* TO 'root'@'%';
## 遠端連線設定
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Mysql@123';
## 重新整理
flush privileges;

9.防火牆開啟存取埠(獲取關閉防火牆)

## 開放防火牆埠
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=3307/tcp --permanent
firewall-cmd --zone=public --add-port=3308/tcp --permanent

## 檢視開放埠
firewall-cmd --list-port

## 設定生效
firewall-cmd --reload

然後就可以外部存取了,以上就是我的MySQL8.0單機多範例安裝步驟採坑記錄。

到此這篇關於MySQL8.0.20單機多範例部署步驟的文章就介紹到這了,更多相關MySQL 單機多範例內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com