這么早Windows環(huán)境中運(yùn)行多個MySQL?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的睢寧縣網(wǎng)站設(shè)計(jì)、移動媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
1.在windows中MySQL的base目錄中創(chuàng)建兩個新實(shí)例的數(shù)據(jù)目錄data3307,data3308
2.為每個新實(shí)例設(shè)置配置文件來指定相關(guān)選項(xiàng)
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)自己生成即可,否則有可能報(bào)錯 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)自己生成即可,否則有可能報(bào)錯 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)新的提示),所以您需要在單獨(dú)的控制臺窗口中發(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ù)器,使用合適的端口號連接到每個實(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.
上面的配置允許客戶端通過TCP/IP來進(jìn)行連接。如果你的Windows版本支持命名管道并且你也想使用命名管道來連接,指定啟用命名管道選項(xiàng)和指定它的名稱。每個實(shí)例支持命名管道連接必須使用一個唯一的管道名。例如:
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)自己生成即可,否則有可能報(bào)錯 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)自己生成即可,否則有可能報(bào)錯 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實(shí)例。想讓客戶端通過共享內(nèi)存連接的過程與上面的過程類似。對每個連接使用–shared-memory選項(xiàng)并使用–shared-memory-base-name選項(xiàng)來為每個實(shí)例指定唯一的共享內(nèi)存名字。
在Windows中作為Windows服務(wù)來啟動多個MySQL實(shí)例
在Windows中,一個MySQL服務(wù)器可以以Windows服務(wù)來運(yùn)行。為了設(shè)置多個MySQL服務(wù),你必須確保每個實(shí)例使用不同的服務(wù)名另外其它參數(shù)每個實(shí)例必須都有唯一值。為了將MySQL服務(wù)器注冊成為Windows服務(wù),使用mysqld –install或mysqld –install-manual選項(xiàng)。
基于上面的信息,有幾種方式來設(shè)置多個Windows服務(wù)。在注冊Windows服務(wù)之前需要關(guān)閉并刪除任何已經(jīng)存在的Windows服務(wù)。
方法1
在一個標(biāo)準(zhǔn)的選項(xiàng)文件中指定所有服務(wù)選項(xiàng)。這樣就需要為每個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ù)庫的數(shù)據(jù)的存放目錄,MySQL 8+ 不需要以下配置,系統(tǒng)自己生成即可,否則有可能報(bào)錯 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)自己生成即可,否則有可能報(bào)錯 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ù)使用單獨(dú)的文件來指定選項(xiàng)并且在注冊服務(wù)時使用–defaults-file選項(xiàng)來告訴每個服務(wù)器所要使用的選項(xiàng)文件。在這種情況下,每個文件都將使用[mysqld]選項(xiàng)組。
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)自己生成即可,否則有可能報(bào)錯 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)自己生成即可,否則有可能報(bào)錯 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實(shí)例注冊成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)啟動成功。
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。
網(wǎng)站標(biāo)題:這么早Windows環(huán)境中運(yùn)行多個MySQL
分享URL:http://vcdvsql.cn/article48/jhjcep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、建站公司、網(wǎng)站內(nèi)鏈、外貿(mào)網(wǎng)站建設(shè)、做網(wǎng)站、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)