MySQL多實例的配置應用實例場景

MySQL多實例

多實例概述

什麼是多實例:

在一臺服務器上,運行多個數據庫服務,這些服務進程通過不同的socket監聽不同的服務端口來提供各自的服務;

為什麼要配置多實例

  • 節約運維成本
  • 提高硬件利用率

多實例的應用場景

  • 資金比較緊張的公司;
  • 並發訪問不是特別大的業務;

配置多實例

1.安裝軟件

具體操作:

解壓軟件、修改目錄名、修改PATH路徑

如果在已有數據庫服務的機器上運行多實例,先查看數據庫服務的版本是否支持多實例,如果不支持需要停掉服務,安裝能支持多實例的數據庫版本

接下來安裝提供多實例服務的軟件

下面演示的版本為MySQL5.7.36,使用二進制安裝,其餘安裝方式請看MySQL的安裝方式

groupadd -r -g 306 mysql 
useradd -g 306 -r -u 306 mysql
tar -zxvf mysql-5.7.36-linux-glibc2.12-x86-64.tar.gz 
mv /root/mysql-5.7.36-linux-glibc2.12-x86_64 /usr/local/mysql

2.配置文件

主配置文件/etc/my.cnf

  • 每個實例要有獨立:數據庫目錄、端口
  • socket文件、pid文件、錯誤日志文件
vim /etc/my.cnf
[mysqld_multi]       #啟動多實例
mysqld     = /usr/local/mysql/bin/mysqld_safe   #指定進程文件路徑
mysqladmin = /usr/local/mysql/bin/mysqladmin    #指定管理命令路徑
user       = root    #指定進程用戶
#pass       = MySQL@123  #可以不指定密碼,在初始化的時候也會出現密碼

[mysqld3306]     #實例進程名稱,3306是服務編號
socket     = /tmp/mysql.sock1   #指定sock文件的路徑和名稱
port       = 3306    #指定端口
pid-file   = /data/3306/mysqld.pid   #進程文件pid號文件按位置
datadir    = /data/3306     #數據庫目錄,最好提前創建
log-error  = /data/3306/mysqld.log    #錯誤日志位置

[mysqld3307]
socket     = /tmp/mysql.sock2
port       = 3307
pid-file   = /data/3307/mysqld.pid
datadir    = /data/3307
log-error  = /data/3307/mysqld.log

mkdir -p /data/330{6..7}
chown -R mysql:mysql /data/330{6,7}

socket文件:自己訪問自己的數據庫服務時,通過socket文件傳遞參數

3.啟動服務

管理多實例

  • 啟動服務

mysqld_multi start 實例編號 #啟動服務

  • 停止服務

mysqld_multi –user=root –password=密碼 stop 實例編號

/usr/local/mysql/bin/mysqld_multi start 3306   #首次啟動初始化
#也可以使用這個命令來初始化
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/3307
#用這個命令初始化之後還需要在使用啟動服務
/usr/local/mysql/bin/mysqld_multi start 3307
輸入絕對路徑太麻煩,可以寫入環境變量
vim /etc/
export PATH=$PATH:/usr/local/mysql/bin/

source /etc/profile.d/mysql.sh
#然後就可以寫短指令
mysqld_multi start 3307

在這裡插入圖片描述

4.查看服務狀態

ss -nultp | grep 3306
ss -nultp | grep 3307

在這裡插入圖片描述

5.使用初始密碼連接服務

客戶端訪問

本機連接

使用初始密碼連接

修改本機登錄密碼

#mysql -uroot -p'初始密碼' -S sock文件
#mysql>alter user root@"localhost" identified by "新密碼";
#連接第一個數據庫實例測試
/usr/local/mysql/bin/mysql -uroot -p'' -S /tmp/mysql.sock1
show databases;
alter user root@"localhost" identified by "123456";
show databases;
exit
#連接第二個數據庫實例測試
mysql -uroot -p'' -S /tmp/mysql.sock2
show databases;
alter user root@"localhost" identified by "123456";
show databases;
exit

在這裡插入圖片描述
在這裡插入圖片描述

使用新密碼再次登錄驗證

在這裡插入圖片描述

6.停止多實例

mysqld_multi --user=root  --password=123456 stop 3306
#mysqld_multi --user=root  --password=123456 stop  如果不寫實例號,就會停止數據庫用戶為root密碼為123456的實例
ss -nultp | grep 3306  

在這裡插入圖片描述

到此這篇關於MySQL多實例的配置應用實例場景的文章就介紹到這瞭,更多相關MySQL多實例內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: