MySQL多實例的配置應(yīng)用實例場景
MySQL多實例
多實例概述
什么是多實例:
在一臺服務(wù)器上,運行多個數(shù)據(jù)庫服務(wù),這些服務(wù)進程通過不同的socket監(jiān)聽不同的服務(wù)端口來提供各自的服務(wù);
為什么要配置多實例
- 節(jié)約運維成本
- 提高硬件利用率
多實例的應(yīng)用場景
- 資金比較緊張的公司;
- 并發(fā)訪問不是特別大的業(yè)務(wù);
配置多實例
1.安裝軟件
具體操作:
解壓軟件、修改目錄名、修改PATH路徑
如果在已有數(shù)據(jù)庫服務(wù)的機器上運行多實例,先查看數(shù)據(jù)庫服務(wù)的版本是否支持多實例,如果不支持需要停掉服務(wù),安裝能支持多實例的數(shù)據(jù)庫版本
接下來安裝提供多實例服務(wù)的軟件
下面演示的版本為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
- 每個實例要有獨立:數(shù)據(jù)庫目錄、端口
- 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 #可以不指定密碼,在初始化的時候也會出現(xiàn)密碼 [mysqld3306] #實例進程名稱,3306是服務(wù)編號 socket = /tmp/mysql.sock1 #指定sock文件的路徑和名稱 port = 3306 #指定端口 pid-file = /data/3306/mysqld.pid #進程文件pid號文件按位置 datadir = /data/3306 #數(shù)據(jù)庫目錄,最好提前創(chuàng)建 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文件:自己訪問自己的數(shù)據(jù)庫服務(wù)時,通過socket文件傳遞參數(shù)
3.啟動服務(wù)
管理多實例
- 啟動服務(wù)
mysqld_multi start 實例編號 #啟動服務(wù)
- 停止服務(wù)
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 #用這個命令初始化之后還需要在使用啟動服務(wù) /usr/local/mysql/bin/mysqld_multi start 3307 輸入絕對路徑太麻煩,可以寫入環(huán)境變量 vim /etc/ export PATH=$PATH:/usr/local/mysql/bin/ source /etc/profile.d/mysql.sh #然后就可以寫短指令 mysqld_multi start 3307
4.查看服務(wù)狀態(tài)
ss -nultp | grep 3306 ss -nultp | grep 3307
5.使用初始密碼連接服務(wù)
客戶端訪問
本機連接
使用初始密碼連接
修改本機登錄密碼
#mysql -uroot -p'初始密碼' -S sock文件 #mysql>alter user root@"localhost" identified by "新密碼"; #連接第一個數(shù)據(jù)庫實例測試 /usr/local/mysql/bin/mysql -uroot -p'' -S /tmp/mysql.sock1 show databases; alter user root@"localhost" identified by "123456"; show databases; exit #連接第二個數(shù)據(jù)庫實例測試 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 如果不寫實例號,就會停止數(shù)據(jù)庫用戶為root密碼為123456的實例 ss -nultp | grep 3306
到此這篇關(guān)于MySQL多實例的配置應(yīng)用實例場景的文章就介紹到這了,更多相關(guān)MySQL多實例內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。