溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在Windows中運行多個MySQL

發(fā)布時間:2021-09-17 11:28:20 來源:億速云 閱讀:147 作者:chen 欄目:MySQL數(shù)據(jù)庫

這篇文章主要講解了“怎么在Windows中運行多個MySQL”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“怎么在Windows中運行多個MySQL”吧!

1.在windows中MySQL的base目錄中創(chuàng)建兩個新實例的數(shù)據(jù)目錄data3307,data3308

2.為每個新實例設(shè)置配置文件來指定相關(guān)選項
my3307.cnf文件內(nèi)容如下:

[mysql]
# 設(shè)置mysql客戶端默認(rèn)字符集
default-character-set=utf8mb4
[mysqld]
# 設(shè)置3307端口
port = 3307
# 設(shè)置mysql的安裝目錄
basedir=D:\mysql-5.7.25-win32
# 設(shè)置 mysql數(shù)據(jù)庫的數(shù)據(jù)的存放目錄,MySQL 8+ 不需要以下配置,系統(tǒng)自己生成即可,否則有可能報錯
datadir=D:\mysql-5.7.25-win32\data3307
# 允許最大連接數(shù)
max_connections=200
# 服務(wù)端使用的字符集默認(rèn)為8比特編碼的latin1字符集
character-set-server=utf8mb4
# 創(chuàng)建新表時將使用的默認(rèn)存儲引擎
default-storage-engine=INNODB
explicit_defaults_for_timestamp=true
log-error=D:\mysql-5.7.25-win32\mysql3307.err
pid-file=D:\mysql-5.7.25-win32\mysqld3307.pid
socket =D:\mysql-5.7.25-win32\mysql3307.sock

my3308.cnf文件內(nèi)容如下:

[mysql]
# 設(shè)置mysql客戶端默認(rèn)字符集
default-character-set=utf8mb4
[mysqld]
# 設(shè)置3308端口
port = 3308
# 設(shè)置mysql的安裝目錄
basedir=D:\mysql-5.7.25-win32
# 設(shè)置 mysql數(shù)據(jù)庫的數(shù)據(jù)的存放目錄,MySQL 8+ 不需要以下配置,系統(tǒng)自己生成即可,否則有可能報錯
datadir=D:\mysql-5.7.25-win32\data3308
# 允許最大連接數(shù)
max_connections=200
# 服務(wù)端使用的字符集默認(rèn)為8比特編碼的latin1字符集
character-set-server=utf8mb4
# 創(chuàng)建新表時將使用的默認(rèn)存儲引擎
default-storage-engine=INNODB
explicit_defaults_for_timestamp=true
log-error=D:\mysql-5.7.25-win32\mysql3308.err
pid-file=D:\mysql-5.7.25-win32\mysqld3308.pid
socket =D:\mysql-5.7.25-win32\mysql3308.sock

3.初始化新數(shù)據(jù)庫

D:\mysql-5.7.25-win32\bin>mysqld  --defaults-file=D:\mysql-5.7.25-win32\my3307.cnf --initialize --basedir=D:\mysql-5.7.25-win32 --datadir=D:\mysql-5.7.25-win32\data3307
D:\mysql-5.7.25-win32\bin>mysqld  --defaults-file=D:\mysql-5.7.25-win32\my3308.cnf --initialize --basedir=D:\mysql-5.7.25-win32 --datadir=D:\mysql-5.7.25-win32\data3308

4.啟動數(shù)據(jù)庫

D:\mysql-5.7.25-win32\bin>mysqld  --defaults-file=D:\mysql-5.7.25-win32\my3307.cnf
D:\mysql-5.7.25-win32\bin>mysqld  --defaults-file=D:\mysql-5.7.25-win32\my3308.cnf

每個服務(wù)器都在前臺啟動(在服務(wù)器稍后退出之前不會出現(xiàn)新的提示),所以您需要在單獨的控制臺窗口中發(fā)出這兩個命令。

5.登錄數(shù)據(jù)庫修改密碼

C:\Users\Administrator>mysql --port=3307 --host=127.0.0.1 --user=root --password=U0U?KinrdWHb
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.25
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
C:\Users\Administrator>mysql --port=3307 --host=127.0.0.1 --user=root --password=123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.7.25 Source distribution
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> exit
C:\Users\Administrator>mysql --port=3308 --host=127.0.0.1 --user=root
Enter password: ************
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.7.25
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
C:\Users\Administrator>mysql --port=3308 --host=127.0.0.1 --user=root --password=123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.7.25 Source distribution
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

6.為了關(guān)閉數(shù)據(jù)庫服務(wù)器,使用合適的端口號連接到每個實例執(zhí)行下面的命令:

C:\Users\Administrator>mysqladmin --port=3307 --host=127.0.0.1 --user=root --password=123456 shutdown
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
C:\Users\Administrator>mysqladmin --port=3308 --host=127.0.0.1 --user=root --password=123456 shutdown
mysqladmin: [Warning] Using a password on the command line interface can be insecure.

上面的配置允許客戶端通過TCP/IP來進(jìn)行連接。如果你的Windows版本支持命名管道并且你也想使用命名管道來連接,指定啟用命名管道選項和指定它的名稱。每個實例支持命名管道連接必須使用一個唯一的管道名。例如:
my3307.cnf文件內(nèi)容如下:

[mysql]
# 設(shè)置mysql客戶端默認(rèn)字符集
default-character-set=utf8mb4
[mysqld]
# 設(shè)置3307端口
port = 3307
# 設(shè)置mysql的安裝目錄
basedir=D:\mysql-5.7.25-win32
# 設(shè)置 mysql數(shù)據(jù)庫的數(shù)據(jù)的存放目錄,MySQL 8+ 不需要以下配置,系統(tǒng)自己生成即可,否則有可能報錯
datadir=D:\mysql-5.7.25-win32\data3307
# 允許最大連接數(shù)
max_connections=200
# 服務(wù)端使用的字符集默認(rèn)為8比特編碼的latin1字符集
character-set-server=utf8mb4
# 創(chuàng)建新表時將使用的默認(rèn)存儲引擎
default-storage-engine=INNODB
explicit_defaults_for_timestamp=true
log-error=D:\mysql-5.7.25-win32\mysql3307.err
pid-file=D:\mysql-5.7.25-win32\mysqld3307.pid
enable-named-pipe
socket =D:\mysql-5.7.25-win32\mysql3307.sock

my3308.cnf文件內(nèi)容如下:

[mysql]
# 設(shè)置mysql客戶端默認(rèn)字符集
default-character-set=utf8mb4
[mysqld]
# 設(shè)置3308端口
port = 3308
# 設(shè)置mysql的安裝目錄
basedir=D:\mysql-5.7.25-win32
# 設(shè)置 mysql數(shù)據(jù)庫的數(shù)據(jù)的存放目錄,MySQL 8+ 不需要以下配置,系統(tǒng)自己生成即可,否則有可能報錯
datadir=D:\mysql-5.7.25-win32\data3308
# 允許最大連接數(shù)
max_connections=200
# 服務(wù)端使用的字符集默認(rèn)為8比特編碼的latin1字符集
character-set-server=utf8mb4
# 創(chuàng)建新表時將使用的默認(rèn)存儲引擎
default-storage-engine=INNODB
explicit_defaults_for_timestamp=true
log-error=D:\mysql-5.7.25-win32\mysql3308.err
pid-file=D:\mysql-5.7.25-win32\mysqld3308.pid
socket =D:\mysql-5.7.25-win32\mysql3308.sock

然后啟動MySQL實例。想讓客戶端通過共享內(nèi)存連接的過程與上面的過程類似。對每個連接使用--shared-memory選項并使用--shared-memory-base-name選項來為每個實例指定唯一的共享內(nèi)存名字。

在Windows中作為Windows服務(wù)來啟動多個MySQL實例
在Windows中,一個MySQL服務(wù)器可以以Windows服務(wù)來運行。為了設(shè)置多個MySQL服務(wù),你必須確保每個實例使用不同的服務(wù)名另外其它參數(shù)每個實例必須都有唯一值。為了將MySQL服務(wù)器注冊成為Windows服務(wù),使用mysqld --install或mysqld --install-manual選項。

基于上面的信息,有幾種方式來設(shè)置多個Windows服務(wù)。在注冊Windows服務(wù)之前需要關(guān)閉并刪除任何已經(jīng)存在的Windows服務(wù)。

方法1
在一個標(biāo)準(zhǔn)的選項文件中指定所有服務(wù)選項。這樣就需要為每個MySQL服務(wù)指定不同的服務(wù)名。假設(shè)端口為3307的MySQL實例的服務(wù)名為mysqld1,端口為3308的MySQL實例的服務(wù)名為mysqld2。那么D:\mysql-5.7.25-win32\my.ini設(shè)置如下:

[mysqld1]
# 設(shè)置3307端口
port = 3307
# 設(shè)置mysql的安裝目錄
basedir=D:\mysql-5.7.25-win32
# 設(shè)置 mysql數(shù)據(jù)庫的數(shù)據(jù)的存放目錄,MySQL 8+ 不需要以下配置,系統(tǒng)自己生成即可,否則有可能報錯
datadir=D:\mysql-5.7.25-win32\data3307
# 允許最大連接數(shù)
max_connections=200
# 服務(wù)端使用的字符集默認(rèn)為8比特編碼的latin1字符集
character-set-server=utf8mb4
# 創(chuàng)建新表時將使用的默認(rèn)存儲引擎
default-storage-engine=INNODB
explicit_defaults_for_timestamp=true
log-error=D:\mysql-5.7.25-win32\mysql3307.err
pid-file=D:\mysql-5.7.25-win32\mysqld3307.pid
socket =D:\mysql-5.7.25-win32\mysql3307.sock
[mysqld2]
# 設(shè)置3308端口
port = 3308
# 設(shè)置mysql的安裝目錄
basedir=D:\mysql-5.7.25-win32
# 設(shè)置 mysql數(shù)據(jù)庫的數(shù)據(jù)的存放目錄,MySQL 8+ 不需要以下配置,系統(tǒng)自己生成即可,否則有可能報錯
datadir=D:\mysql-5.7.25-win32\data3308
# 允許最大連接數(shù)
max_connections=200
# 服務(wù)端使用的字符集默認(rèn)為8比特編碼的latin1字符集
character-set-server=utf8mb4
# 創(chuàng)建新表時將使用的默認(rèn)存儲引擎
default-storage-engine=INNODB
explicit_defaults_for_timestamp=true
log-error=D:\mysql-5.7.25-win32\mysql3308.err
pid-file=D:\mysql-5.7.25-win32\mysqld3308.pid
socket =D:\mysql-5.7.25-win32\mysql3308.sock

注冊服務(wù),使用完整服務(wù)路徑名來確保Windows為每個服務(wù)注冊正確的可執(zhí)行程序:

D:\mysql-5.7.25-win32\bin>mysqld --install mysqld1
Service successfully installed.
D:\mysql-5.7.25-win32\bin>mysqld --install mysqld2
Service successfully installed.

為了啟動MySQL服務(wù),使用服務(wù)管理器或者使用net start servicename:

C:\Users\Administrator>net start mysqld1
mysqld1 服務(wù)正在啟動 .
mysqld1 服務(wù)已經(jīng)啟動成功。
C:\Users\Administrator>net start mysqld2
mysqld2 服務(wù)正在啟動 .
mysqld2 服務(wù)已經(jīng)啟動成功。
為了停止MySQL服務(wù),使用服務(wù)管理器或者使用net stop servicename:
C:\Users\Administrator>net stop mysqld1
mysqld1 服務(wù)正在停止.
mysqld1 服務(wù)已成功停止。
C:\Users\Administrator>net stop mysqld2
mysqld2 服務(wù)正在停止.
mysqld2 服務(wù)已成功停止。

刪除服務(wù)

D:\mysql-5.7.25-win32\bin>mysqld --remove mysqld1
Service successfully removed.
D:\mysql-5.7.25-win32\bin>mysqld --remove mysqld2
Service successfully removed.

方法2
為每個MySQL服務(wù)使用單獨的文件來指定選項并且在注冊服務(wù)時使用--defaults-file選項來告訴每個服務(wù)器所要使用的選項文件。在這種情況下,每個文件都將使用[mysqld]選項組。
my3307.cnf文件內(nèi)容如下:

[mysql]
# 設(shè)置mysql客戶端默認(rèn)字符集
default-character-set=utf8mb4
[mysqld]
# 設(shè)置3307端口
port = 3307
# 設(shè)置mysql的安裝目錄
basedir=D:\mysql-5.7.25-win32
# 設(shè)置 mysql數(shù)據(jù)庫的數(shù)據(jù)的存放目錄,MySQL 8+ 不需要以下配置,系統(tǒng)自己生成即可,否則有可能報錯
datadir=D:\mysql-5.7.25-win32\data3307
# 允許最大連接數(shù)
max_connections=200
# 服務(wù)端使用的字符集默認(rèn)為8比特編碼的latin1字符集
character-set-server=utf8mb4
# 創(chuàng)建新表時將使用的默認(rèn)存儲引擎
default-storage-engine=INNODB
explicit_defaults_for_timestamp=true
log-error=D:\mysql-5.7.25-win32\mysql3307.err
pid-file=D:\mysql-5.7.25-win32\mysqld3307.pid
enable-named-pipe
socket =D:\mysql-5.7.25-win32\mysql3307.sock

my3308.cnf文件內(nèi)容如下:

[mysql]
# 設(shè)置mysql客戶端默認(rèn)字符集
default-character-set=utf8mb4
[mysqld]
# 設(shè)置3308端口
port = 3308
# 設(shè)置mysql的安裝目錄
basedir=D:\mysql-5.7.25-win32
# 設(shè)置 mysql數(shù)據(jù)庫的數(shù)據(jù)的存放目錄,MySQL 8+ 不需要以下配置,系統(tǒng)自己生成即可,否則有可能報錯
datadir=D:\mysql-5.7.25-win32\data3308
# 允許最大連接數(shù)
max_connections=200
# 服務(wù)端使用的字符集默認(rèn)為8比特編碼的latin1字符集
character-set-server=utf8mb4
# 創(chuàng)建新表時將使用的默認(rèn)存儲引擎
default-storage-engine=INNODB
explicit_defaults_for_timestamp=true
log-error=D:\mysql-5.7.25-win32\mysql3308.err
pid-file=D:\mysql-5.7.25-win32\mysqld3308.pid
socket =D:\mysql-5.7.25-win32\mysql3308.sock

將每個MySQL實例注冊成Windows服務(wù)

D:\mysql-5.7.25-win32\bin>mysqld --install mysqld1 --defaults-file=D:\mysql-5.7.25-win32\my3307.cnf
Service successfully installed.
D:\mysql-5.7.25-win32\bin>mysqld --install mysqld2 --defaults-file=D:\mysql-5.7.25-win32\my3308.cnf
Service successfully installed.

啟動服務(wù)

C:\Users\Administrator>net start mysqld1
mysqld1 服務(wù)正在啟動 .
mysqld1 服務(wù)已經(jīng)啟動成功。
C:\Users\Administrator>net start mysqld2
mysqld2 服務(wù)正在啟動 .
mysqld2 服務(wù)已經(jīng)啟動成功。

感謝各位的閱讀,以上就是“怎么在Windows中運行多個MySQL”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對怎么在Windows中運行多個MySQL這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI