共計 9607 個字符,預計需要花費 25 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
這么早 Windows 環境中運行多個 MySQL?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面丸趣 TV 小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
1. 在 windows 中 MySQL 的 base 目錄中創建兩個新實例的數據目錄 data3307,data3308
2. 為每個新實例設置配置文件來指定相關選項
my3307.cnf 文件內容如下:
[mysql]
# 設置 mysql 客戶端默認字符集
default-character-set=utf8mb4
[mysqld]
# 設置 3307 端口
port = 3307
# 設置 mysql 的安裝目錄
basedir=D:\mysql-5.7.25-win32
# 設置 mysql 數據庫的數據的存放目錄,MySQL 8+ 不需要以下配置,系統自己生成即可,否則有可能報錯
datadir=D:\mysql-5.7.25-win32\data3307
# 允許最大連接數
max_connections=200
# 服務端使用的字符集默認為 8 比特編碼的 latin1 字符集
character-set-server=utf8mb4
# 創建新表時將使用的默認存儲引擎
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 文件內容如下:
[mysql]
# 設置 mysql 客戶端默認字符集
default-character-set=utf8mb4
[mysqld]
# 設置 3308 端口
port = 3308
# 設置 mysql 的安裝目錄
basedir=D:\mysql-5.7.25-win32
# 設置 mysql 數據庫的數據的存放目錄,MySQL 8+ 不需要以下配置,系統自己生成即可,否則有可能報錯
datadir=D:\mysql-5.7.25-win32\data3308
# 允許最大連接數
max_connections=200
# 服務端使用的字符集默認為 8 比特編碼的 latin1 字符集
character-set-server=utf8mb4
# 創建新表時將使用的默認存儲引擎
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. 初始化新數據庫
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:\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
每個服務器都在前臺啟動(在服務器稍后退出之前不會出現新的提示),所以您需要在單獨的控制臺窗口中發出這兩個命令。
5. 登錄數據庫修改密碼
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
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
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. 為了關閉數據庫服務器,使用合適的端口號連接到每個實例執行下面的命令:
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 來進行連接。如果你的 Windows 版本支持命名管道并且你也想使用命名管道來連接,指定啟用命名管道選項和指定它的名稱。每個實例支持命名管道連接必須使用一個唯一的管道名。例如:
my3307.cnf 文件內容如下:
[mysql]
# 設置 mysql 客戶端默認字符集
default-character-set=utf8mb4
[mysqld]
# 設置 3307 端口
port = 3307
# 設置 mysql 的安裝目錄
basedir=D:\mysql-5.7.25-win32
# 設置 mysql 數據庫的數據的存放目錄,MySQL 8+ 不需要以下配置,系統自己生成即可,否則有可能報錯
datadir=D:\mysql-5.7.25-win32\data3307
# 允許最大連接數
max_connections=200
# 服務端使用的字符集默認為 8 比特編碼的 latin1 字符集
character-set-server=utf8mb4
# 創建新表時將使用的默認存儲引擎
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 文件內容如下:
[mysql]
# 設置 mysql 客戶端默認字符集
default-character-set=utf8mb4
[mysqld]
# 設置 3308 端口
port = 3308
# 設置 mysql 的安裝目錄
basedir=D:\mysql-5.7.25-win32
# 設置 mysql 數據庫的數據的存放目錄,MySQL 8+ 不需要以下配置,系統自己生成即可,否則有可能報錯
datadir=D:\mysql-5.7.25-win32\data3308
# 允許最大連接數
max_connections=200
# 服務端使用的字符集默認為 8 比特編碼的 latin1 字符集
character-set-server=utf8mb4
# 創建新表時將使用的默認存儲引擎
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 實例。想讓客戶端通過共享內存連接的過程與上面的過程類似。對每個連接使用–shared-memory 選項并使用–shared-memory-base-name 選項來為每個實例指定唯一的共享內存名字。
在 Windows 中作為 Windows 服務來啟動多個 MySQL 實例
在 Windows 中,一個 MySQL 服務器可以以 Windows 服務來運行。為了設置多個 MySQL 服務,你必須確保每個實例使用不同的服務名另外其它參數每個實例必須都有唯一值。為了將 MySQL 服務器注冊成為 Windows 服務,使用 mysqld –install 或 mysqld –install-manual 選項。
基于上面的信息,有幾種方式來設置多個 Windows 服務。在注冊 Windows 服務之前需要關閉并刪除任何已經存在的 Windows 服務。
方法 1
在一個標準的選項文件中指定所有服務選項。這樣就需要為每個 MySQL 服務指定不同的服務名。假設端口為 3307 的 MySQL 實例的服務名為 mysqld1,端口為 3308 的 MySQL 實例的服務名為 mysqld2。那么 D:\mysql-5.7.25-win32\my.ini 設置如下:
[mysqld1]
# 設置 3307 端口
port = 3307
# 設置 mysql 的安裝目錄
basedir=D:\mysql-5.7.25-win32
# 設置 mysql 數據庫的數據的存放目錄,MySQL 8+ 不需要以下配置,系統自己生成即可,否則有可能報錯
datadir=D:\mysql-5.7.25-win32\data3307
# 允許最大連接數
max_connections=200
# 服務端使用的字符集默認為 8 比特編碼的 latin1 字符集
character-set-server=utf8mb4
# 創建新表時將使用的默認存儲引擎
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
basedir=D:\mysql-5.7.25-win32
# 設置 mysql 數據庫的數據的存放目錄,MySQL 8+ 不需要以下配置,系統自己生成即可,否則有可能報錯
datadir=D:\mysql-5.7.25-win32\data3308
# 允許最大連接數
max_connections=200
# 服務端使用的字符集默認為 8 比特編碼的 latin1 字符集
character-set-server=utf8mb4
# 創建新表時將使用的默認存儲引擎
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
注冊服務,使用完整服務路徑名來確保 Windows 為每個服務注冊正確的可執行程序:
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 服務,使用服務管理器或者使用 net start servicename:
C:\Users\Administrator net start mysqld1
mysqld1 服務正在啟動 .
mysqld1 服務已經啟動成功。
C:\Users\Administrator net start mysqld2
mysqld2 服務正在啟動 .
mysqld2 服務已經啟動成功。
為了停止 MySQL 服務,使用服務管理器或者使用 net stop servicename:
C:\Users\Administrator net stop mysqld1
mysqld1 服務正在停止.
mysqld1 服務已成功停止。
C:\Users\Administrator net stop mysqld2
mysqld2 服務正在停止.
mysqld2 服務已成功停止。
刪除服務
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 服務使用單獨的文件來指定選項并且在注冊服務時使用–defaults-file 選項來告訴每個服務器所要使用的選項文件。在這種情況下,每個文件都將使用 [mysqld] 選項組。
my3307.cnf 文件內容如下:
[mysql]
# 設置 mysql 客戶端默認字符集
default-character-set=utf8mb4
[mysqld]
# 設置 3307 端口
port = 3307
# 設置 mysql 的安裝目錄
basedir=D:\mysql-5.7.25-win32
# 設置 mysql 數據庫的數據的存放目錄,MySQL 8+ 不需要以下配置,系統自己生成即可,否則有可能報錯
datadir=D:\mysql-5.7.25-win32\data3307
# 允許最大連接數
max_connections=200
# 服務端使用的字符集默認為 8 比特編碼的 latin1 字符集
character-set-server=utf8mb4
# 創建新表時將使用的默認存儲引擎
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 文件內容如下:
[mysql]
# 設置 mysql 客戶端默認字符集
default-character-set=utf8mb4
[mysqld]
# 設置 3308 端口
port = 3308
# 設置 mysql 的安裝目錄
basedir=D:\mysql-5.7.25-win32
# 設置 mysql 數據庫的數據的存放目錄,MySQL 8+ 不需要以下配置,系統自己生成即可,否則有可能報錯
datadir=D:\mysql-5.7.25-win32\data3308
# 允許最大連接數
max_connections=200
# 服務端使用的字符集默認為 8 比特編碼的 latin1 字符集
character-set-server=utf8mb4
# 創建新表時將使用的默認存儲引擎
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 服務
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.
啟動服務
C:\Users\Administrator net start mysqld1
mysqld1 服務正在啟動 .
mysqld1 服務已經啟動成功。
C:\Users\Administrator net start mysqld2
mysqld2 服務正在啟動 .
mysqld2 服務已經啟動成功。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注丸趣 TV 行業資訊頻道,感謝您對丸趣 TV 的支持。
向 AI 問一下細節