這篇文章主要講解了“怎么在Windows中運(yùn)行多個(gè)MySQL”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“怎么在Windows中運(yùn)行多個(gè)MySQL”吧!
創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括瑯琊網(wǎng)站建設(shè)、瑯琊網(wǎng)站制作、瑯琊網(wǎng)頁(yè)制作以及瑯琊網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,瑯琊網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶(hù)以成都為中心已經(jīng)輻射到瑯琊省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶(hù)的支持與信任!1.在windows中MySQL的base目錄中創(chuàng)建兩個(gè)新實(shí)例的數(shù)據(jù)目錄data3307,data3308
2.為每個(gè)新實(shí)例設(shè)置配置文件來(lái)指定相關(guān)選項(xiàng)
my3307.cnf文件內(nèi)容如下:
[mysql] # 設(shè)置mysql客戶(hù)端默認(rèn)字符集 default-character-set=utf8mb4 [mysqld] # 設(shè)置3307端口 port = 3307 # 設(shè)置mysql的安裝目錄 basedir=D:\mysql-5.7.25-win32 # 設(shè)置 mysql數(shù)據(jù)庫(kù)的數(shù)據(jù)的存放目錄,MySQL 8+ 不需要以下配置,系統(tǒng)自己生成即可,否則有可能報(bào)錯(cuò) datadir=D:\mysql-5.7.25-win32\data3307 # 允許大連接數(shù) max_connections=200 # 服務(wù)端使用的字符集默認(rèn)為8比特編碼的latin1字符集 character-set-server=utf8mb4 # 創(chuàng)建新表時(shí)將使用的默認(rèn)存儲(chǔ)引擎 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客戶(hù)端默認(rèn)字符集 default-character-set=utf8mb4 [mysqld] # 設(shè)置3308端口 port = 3308 # 設(shè)置mysql的安裝目錄 basedir=D:\mysql-5.7.25-win32 # 設(shè)置 mysql數(shù)據(jù)庫(kù)的數(shù)據(jù)的存放目錄,MySQL 8+ 不需要以下配置,系統(tǒng)自己生成即可,否則有可能報(bào)錯(cuò) datadir=D:\mysql-5.7.25-win32\data3308 # 允許大連接數(shù) max_connections=200 # 服務(wù)端使用的字符集默認(rèn)為8比特編碼的latin1字符集 character-set-server=utf8mb4 # 創(chuàng)建新表時(shí)將使用的默認(rèn)存儲(chǔ)引擎 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ù)庫(kù)
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.啟動(dòng)數(shù)據(jù)庫(kù)
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
每個(gè)服務(wù)器都在前臺(tái)啟動(dòng)(在服務(wù)器稍后退出之前不會(huì)出現(xiàn)新的提示),所以您需要在單獨(dú)的控制臺(tái)窗口中發(fā)出這兩個(gè)命令。
5.登錄數(shù)據(jù)庫(kù)修改密碼
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ù)庫(kù)服務(wù)器,使用合適的端口號(hào)連接到每個(gè)實(shí)例執(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.
上面的配置允許客戶(hù)端通過(guò)TCP/IP來(lái)進(jìn)行連接。如果你的Windows版本支持命名管道并且你也想使用命名管道來(lái)連接,指定啟用命名管道選項(xiàng)和指定它的名稱(chēng)。每個(gè)實(shí)例支持命名管道連接必須使用一個(gè)唯一的管道名。例如:
my3307.cnf文件內(nèi)容如下:
[mysql] # 設(shè)置mysql客戶(hù)端默認(rèn)字符集 default-character-set=utf8mb4 [mysqld] # 設(shè)置3307端口 port = 3307 # 設(shè)置mysql的安裝目錄 basedir=D:\mysql-5.7.25-win32 # 設(shè)置 mysql數(shù)據(jù)庫(kù)的數(shù)據(jù)的存放目錄,MySQL 8+ 不需要以下配置,系統(tǒng)自己生成即可,否則有可能報(bào)錯(cuò) datadir=D:\mysql-5.7.25-win32\data3307 # 允許大連接數(shù) max_connections=200 # 服務(wù)端使用的字符集默認(rèn)為8比特編碼的latin1字符集 character-set-server=utf8mb4 # 創(chuàng)建新表時(shí)將使用的默認(rèn)存儲(chǔ)引擎 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客戶(hù)端默認(rèn)字符集 default-character-set=utf8mb4 [mysqld] # 設(shè)置3308端口 port = 3308 # 設(shè)置mysql的安裝目錄 basedir=D:\mysql-5.7.25-win32 # 設(shè)置 mysql數(shù)據(jù)庫(kù)的數(shù)據(jù)的存放目錄,MySQL 8+ 不需要以下配置,系統(tǒng)自己生成即可,否則有可能報(bào)錯(cuò) datadir=D:\mysql-5.7.25-win32\data3308 # 允許大連接數(shù) max_connections=200 # 服務(wù)端使用的字符集默認(rèn)為8比特編碼的latin1字符集 character-set-server=utf8mb4 # 創(chuàng)建新表時(shí)將使用的默認(rèn)存儲(chǔ)引擎 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
然后啟動(dòng)MySQL實(shí)例。想讓客戶(hù)端通過(guò)共享內(nèi)存連接的過(guò)程與上面的過(guò)程類(lèi)似。對(duì)每個(gè)連接使用--shared-memory選項(xiàng)并使用--shared-memory-base-name選項(xiàng)來(lái)為每個(gè)實(shí)例指定唯一的共享內(nèi)存名字。
在Windows中作為Windows服務(wù)來(lái)啟動(dòng)多個(gè)MySQL實(shí)例
在Windows中,一個(gè)MySQL服務(wù)器可以以Windows服務(wù)來(lái)運(yùn)行。為了設(shè)置多個(gè)MySQL服務(wù),你必須確保每個(gè)實(shí)例使用不同的服務(wù)名另外其它參數(shù)每個(gè)實(shí)例必須都有唯一值。為了將MySQL服務(wù)器注冊(cè)成為Windows服務(wù),使用mysqld --install或mysqld --install-manual選項(xiàng)。
基于上面的信息,有幾種方式來(lái)設(shè)置多個(gè)Windows服務(wù)。在注冊(cè)Windows服務(wù)之前需要關(guān)閉并刪除任何已經(jīng)存在的Windows服務(wù)。
方法1
在一個(gè)標(biāo)準(zhǔn)的選項(xiàng)文件中指定所有服務(wù)選項(xiàng)。這樣就需要為每個(gè)MySQL服務(wù)指定不同的服務(wù)名。假設(shè)端口為3307的MySQL實(shí)例的服務(wù)名為mysqld1,端口為3308的MySQL實(shí)例的服務(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ù)庫(kù)的數(shù)據(jù)的存放目錄,MySQL 8+ 不需要以下配置,系統(tǒng)自己生成即可,否則有可能報(bào)錯(cuò) datadir=D:\mysql-5.7.25-win32\data3307 # 允許大連接數(shù) max_connections=200 # 服務(wù)端使用的字符集默認(rèn)為8比特編碼的latin1字符集 character-set-server=utf8mb4 # 創(chuàng)建新表時(shí)將使用的默認(rèn)存儲(chǔ)引擎 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ù)庫(kù)的數(shù)據(jù)的存放目錄,MySQL 8+ 不需要以下配置,系統(tǒng)自己生成即可,否則有可能報(bào)錯(cuò) datadir=D:\mysql-5.7.25-win32\data3308 # 允許大連接數(shù) max_connections=200 # 服務(wù)端使用的字符集默認(rèn)為8比特編碼的latin1字符集 character-set-server=utf8mb4 # 創(chuàng)建新表時(shí)將使用的默認(rèn)存儲(chǔ)引擎 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
注冊(cè)服務(wù),使用完整服務(wù)路徑名來(lái)確保Windows為每個(gè)服務(wù)注冊(cè)正確的可執(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.
為了啟動(dòng)MySQL服務(wù),使用服務(wù)管理器或者使用net start servicename:
C:\Users\Administrator>net start mysqld1 mysqld1 服務(wù)正在啟動(dòng) . mysqld1 服務(wù)已經(jīng)啟動(dòng)成功。 C:\Users\Administrator>net start mysqld2 mysqld2 服務(wù)正在啟動(dòng) . mysqld2 服務(wù)已經(jīng)啟動(dò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
為每個(gè)MySQL服務(wù)使用單獨(dú)的文件來(lái)指定選項(xiàng)并且在注冊(cè)服務(wù)時(shí)使用--defaults-file選項(xiàng)來(lái)告訴每個(gè)服務(wù)器所要使用的選項(xiàng)文件。在這種情況下,每個(gè)文件都將使用[mysqld]選項(xiàng)組。
my3307.cnf文件內(nèi)容如下:
[mysql] # 設(shè)置mysql客戶(hù)端默認(rèn)字符集 default-character-set=utf8mb4 [mysqld] # 設(shè)置3307端口 port = 3307 # 設(shè)置mysql的安裝目錄 basedir=D:\mysql-5.7.25-win32 # 設(shè)置 mysql數(shù)據(jù)庫(kù)的數(shù)據(jù)的存放目錄,MySQL 8+ 不需要以下配置,系統(tǒng)自己生成即可,否則有可能報(bào)錯(cuò) datadir=D:\mysql-5.7.25-win32\data3307 # 允許大連接數(shù) max_connections=200 # 服務(wù)端使用的字符集默認(rèn)為8比特編碼的latin1字符集 character-set-server=utf8mb4 # 創(chuàng)建新表時(shí)將使用的默認(rèn)存儲(chǔ)引擎 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客戶(hù)端默認(rèn)字符集 default-character-set=utf8mb4 [mysqld] # 設(shè)置3308端口 port = 3308 # 設(shè)置mysql的安裝目錄 basedir=D:\mysql-5.7.25-win32 # 設(shè)置 mysql數(shù)據(jù)庫(kù)的數(shù)據(jù)的存放目錄,MySQL 8+ 不需要以下配置,系統(tǒng)自己生成即可,否則有可能報(bào)錯(cuò) datadir=D:\mysql-5.7.25-win32\data3308 # 允許大連接數(shù) max_connections=200 # 服務(wù)端使用的字符集默認(rèn)為8比特編碼的latin1字符集 character-set-server=utf8mb4 # 創(chuàng)建新表時(shí)將使用的默認(rèn)存儲(chǔ)引擎 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
將每個(gè)MySQL實(shí)例注冊(cè)成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.
啟動(dòng)服務(wù)
C:\Users\Administrator>net start mysqld1 mysqld1 服務(wù)正在啟動(dòng) . mysqld1 服務(wù)已經(jīng)啟動(dòng)成功。 C:\Users\Administrator>net start mysqld2 mysqld2 服務(wù)正在啟動(dòng) . mysqld2 服務(wù)已經(jīng)啟動(dòng)成功。
感謝各位的閱讀,以上就是“怎么在Windows中運(yùn)行多個(gè)MySQL”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)怎么在Windows中運(yùn)行多個(gè)MySQL這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!