MySQL啟多個例項

2022-03-02 10:32:58 字數 3380 閱讀 8675

很多朋友都想在一台伺服器上執行多個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;」

補充上兩句:

[[email protected] mysql]# cp

../mysql-5.0.67/support-files/my-large.cnf /etc/my.cnf

[[email protected] mysql]#

cp ../mysql-5.0.67/support-files/mysql.server

/etc/rc.d/init.d/mysqld

[[email protected] mysql]# chkconfig –add

mysql

[[email protected] mysql]# chkconfig –level mysql 345 on

[[email protected]

mysql]# chkconfig –list mysql

window 安裝多個mysql例項

第一步 將壓縮包分別解壓縮到不同的目錄下 第二步 修改配置檔案 進入 mysql 5.7.21 3307 目錄,新建 my.ini 配置檔案,並配置如下 mysqld skip grant tables basedir d developer mysql mysql 5.7.21 3307 bin ...

CentOS啟動多個MySQL例項

1.mysql的部署安裝之前都已經介紹過,這裡我們直接貼出簡要步驟 例如 我們將mysql安裝在下圖所示的目錄下 2.我們建立乙個my.cnf之前的已經部署過一次,且預設的配置檔案是 etc my.cnf。所以這裡我們就在mysql的目錄裡建立my.cnf root jumpserver 01 94...

mysql配置多個磁碟 MySQL多例項配置 兩

mysql操作和維護乙個集中的資料庫的。它可以由乙個單一的執行mysql在資料庫伺服器,部署多mysql示例。這個功能是由mysqld multi實現。mysqld multimysqld的服務程序。這些mysqld服務程序程式能夠用不同的socket或是監聽於不同的埠,同一時候將資料檔案分布到不同...