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!
推薦閱讀:
- mysql sock 文件解析及作用講解
- 詳解MySQL中的pid與socket
- Redhat7.3安裝MySQL8.0.22的詳細教程(二進制安裝)
- MySQL8.0.20單機多實例部署步驟
- MySQL系列之二 多實例配置