日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

【转载】MySQL启多个实例

發布時間:2025/6/15 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转载】MySQL启多个实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

很多朋友都想在一臺服務器上運行多個MySQL Instance,究竟怎么做呢?
首先要明晰幾個原理, 簡稱為mysqld讀取my.cnf的順序:
第一搜,首先讀取/etc/my.cnf,多實例這個配置文件不會存在。:-(
第二搜,$datadir/my.cnf,在data目錄下尋找此配置文件。
第三搜,defaultfile=/path/my.cnf 通常寫在命令行上,mysqld_safe defaultfile=/tmp/my.cnf &等執行。
第四搜,~/my.cnf 當前用戶下的配置文件。

mysqld多進程運行的必要條件,就是pid文件,datadir,socket,port是獨立分開的。
| Variable_name | Value |
| datadir | /home/mysql/ |
| Variable_name | Value |
| socket | /home/mysql/mysql.sock |
| Variable_name | Value |
| pid_file | /home/mysql/mysql.pid |
| Variable_name | Value |
| port | 3306 |

單一版本實現多實例
#pwd
/usr/local/
#touch my_multi.cnf
#cat my_multi.cnf
[mysqld_multi]
mysqld = /usr/bin/mysqld_safe
mysqladmin = /usr/bin/mysqladmin
user = root

[mysqld1]
socket = /tmp/mysql_3301.sock
port = 3301
pid-file = /usr/local/mysql_3301/data/mysql_3301.pid
datadir = /usr/local/mysql_3301/data/
log = /usr/local/mysql_3301/data/mysql_3301.log
user = mysql

[mysqld2]
socket = /tmp/mysql_3302.sock
port = 3302
pid-file = /usr/local/mysql_3302/data/mysql_3302.pid
datadir = /usr/local/mysql_3302/data/
log = /usr/local/mysql_3302/data/mysql_3302.log
user = mysql

啟動mysqld 的兩個實例

/usr/bin/mysqld_multi –config-file=./my_multi.cnf start 1,2

Starting mysqld daemon with databases from /usr/local/mysql_3301/data/
Starting mysqld daemon with databases from /usr/local/mysql_3302/data/

查看3301,3302端口是否被監聽
# netstat -lt |grep 33
tcp 0 0 *:3301 *:* LISTEN
tcp 0 0 *:3302 *:* LISTEN

測試mysql是否可以連通

#pwd
/usr/local/
通過/tmp/mysql_3301.sock連接3001端口的mysqld
# bin/mysql -u root -S /tmp/mysql_3301.sock -e “SELECT @@VERSION;”
停止3001端口的mysqld
# /usr/bin/mysqld_multi –config-file=./my_multi.cnf stop 1
STOPPING server from pid file /usr/local/mysql_3301/data/mysql_3301.pid
091010 11:56:04 mysqld ended
再次連接,系統會提示錯誤
# bin/mysql -u root -S /tmp/mysql_3301.sock -e “SELECT @@VERSION;”
ERROR 2002 (HY000):
Can’t connect to local MySQL server through socket ‘/tmp/mysql_3301.sock’ (2)
相同的步驟測試3002端口的mysqld,輸出與上面相同。
# /usr/bin/mysql -u root -S /tmp/mysql_3302.sock -e “SELECT @@VERSION;”
# /usr/bin/mysqld_multi –config-file=./my_multi.cnf stop 2
# /usr/bin/mysql -u root -S /tmp/mysql_3302.sock -e “SELECT @@VERSION;”

補充上兩句:
[Nova@imdba.cn mysql]# cp ../mysql-5.0.67/support-files/my-large.cnf /etc/my.cnf
[Nova@imdba.cn mysql]# cp ../mysql-5.0.67/support-files/mysql.server /etc/rc.d/init.d/mysqld
[Nova@imdba.cn mysql]# chkconfig –add mysql
[Nova@imdba.cn mysql]# chkconfig –level mysql 345 on
[Nova@imdba.cn mysql]# chkconfig –list mysql

轉載于:https://www.cnblogs.com/wajika/p/6242087.html

總結

以上是生活随笔為你收集整理的【转载】MySQL启多个实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。