日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

如何在 Windows 上安装多个 MySQL,实现 MySQL 跨电脑移植使用

發布時間:2024/4/13 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何在 Windows 上安装多个 MySQL,实现 MySQL 跨电脑移植使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如何在 Windows 上安裝多個 MySQL,實現 MySQL 跨電腦移植使用

  • 初次安裝
  • MySQL 移植使用
  • 附錄
    • 其它 MySQL 命令
      • 查看本 MySQL 數據存放目錄

MySQL 的各種其它安裝方法:

  • 在 Winodws 中使用安裝包安裝 MySQL:https://blog.csdn.net/wangpaiblog/article/details/112000033

  • 在 Windows 中使用免安裝包安裝 MySQL:https://blog.csdn.net/wangpaiblog/article/details/121571927

  • 在 Linux 中安裝 MySQL:https://blog.csdn.net/wangpaiblog/article/details/120259448

??實現了在 Windows 上安裝多個 MySQL、MySQL 跨電腦移植使用的標準是,如果在一個 Windows 上安裝了一個 MySQL,然后將此 MySQL 數據拷貝到第二臺沒有安裝過 MySQL 的 Windows 上,第二臺 Windows 可以無附加條件地通過一定的方法來訪問此 MySQL 數據庫,且數據庫中的數據沒有損失。達到了上述的標準就認為實現了 MySQL 的跨電腦移植使用。

??MySQL 可以實現這樣的技術。具體來說,如果可以將一臺 Windows 上的數據庫拷貝到第二臺電腦上,第二臺電腦只需要重新注冊 MySQL 服務和修改配置文件中關于 MySQL 的安裝與數據路徑即可使用原先的數據。


【實現原理】

??從本質上來說,MySQL 不需要安裝,只是需要在操作系統中注冊 MySQL 服務。原因是,MySQL 的服務模塊和其它應用的一樣,是一種在后臺無限循環靜默運行的程序。它作為守護進程,必須要事先由操作系統將其啟動,其它 MySQL 組件才能得以運行。只要它啟動之后,其它使用 MySQL 的進程就可以自行啟動 MySQL 客戶進程來實現對 MySQL 數據庫的訪問。


初次安裝

筆者的環境:

  • MySQL 8.0.27

  • Windows 10 教育版

具體步驟如下:

  • 先在一臺電腦使用 MySQL 的免安裝包安裝 MySQL,這個過程同上面的教程【在 Windows 中使用免安裝包安裝 MySQL】類似。為了避免不必要的踩坑,這里還是重新描述一下。

  • 假設已經按照教程【在 Windows 中使用免安裝包安裝 MySQL】中的指示下載好了 MySQL 的免安裝包。這里以 MySQL 8.0.27 例。

  • 如果是同一臺電腦上安裝多個 MySQL,那么是不能設置環境變量的,這會導致沖突,而且也沒有必要,因為可以通過完整的絕對路徑來運行 MySQL。

  • 將下載好的 mysql-8.0.27-winx64.zip 解壓縮,得到 MySQL 安裝目錄。安裝目錄應該是一種含文件夾 bin 的目錄。在筆者的 Windows,各路徑如下:

    • MySQL 安裝目錄:D:\mysql-8.0.27-winx64

    • MySQL 命令目錄:D:\mysql-8.0.27-winx64\bin

    • MySQL 數據庫數據存放目錄:D:\mysql-8.0.27-winx64\data

    • MySQL 端口號:3306

  • 在 MySQL 的目錄下創建一個 MySQL 配置文件 my.ini。此配置文件是用來規定 MySQL 服務進程的參數信息。

    [mysql] # 設置 MySQL 客戶端默認字符集 default-character-set=utf8 [mysqld] #設置 MySQL 端口號 port = 3306 #skip-grant-tables # 設置 MySQL 的安裝目錄 basedir=D:\mysql-8.0.27-winx64\ # 設置 MySQL 數據庫的數據的存放目錄 datadir=D:\mysql-8.0.27-winx64\data # 允許最大連接數 max_connections=200 # 服務端使用的字符集 character-set-server=utf8 # 創建新表時將使用的默認存儲引擎 default-storage-engine=INNODB[client] #default_character_set=utf8

    【踩坑提醒】

    ??此處 basedir、 datadir 的路徑中不要使用中文,而且應該使用斜杠 / 來代替反斜杠 \。原因是反斜杠 \ 可能引發轉義的問題。比方說,如果路徑中含 \test,那么 MySQL 會首先將 \t 解釋成制表符。因此,也可以在原來的每個反斜杠 \ 后面再加一個反斜杠 \,這樣也能解決轉義的問題。

    ??如果引發了轉義的問題,將出現如下報錯:

    mysqld: Can't create/write to file 'XXX' (OS errno 2 - No such file or directory)
  • 一般來說,只需要修改上面配置文件 my.ini 中的端口 port、MySQL 安裝目錄 basedir、MySQL 數據存放路徑 datadir。

  • 管理員身份運行 CMD。如果不以管理員身份運行,將會有報錯 Install/Remove of the Service Denied!。

  • 以管理員身份運行 CMD 的方法有很多,這里只舉一例。

  • 使用如下命令找到 CMD 的路徑,然后右鍵單擊,選擇 以管理員身份運行。通常,CMD 的路徑位于 C:\Windows\System32\cmd.exe。

    where cmd
    D:\>where cmd C:\Windows\System32\cmd.exeD:\>
  • 現在,如果成功啟動了 CMD 窗口,窗口上應該有 管理員 字樣,窗口顯示的當前路徑為 C:\Windows\system32。

  • 使用如下命令進入 MySQL 所在的磁盤。

    d:
    C:\Windows\system32>d:D:\>
  • 使用如下命令進入 MySQL 安裝路徑。

    cd mysql-8.0.27-winx64\bin
    D:\>cd mysql-8.0.27-winx64\binD:\mysql-8.0.27-winx64\bin>
  • 現在,應該就在 CMD 中以管理員身份進入到了 MySQL 的命令目錄。輸入命令 mysqld install xxx 在操作系統中注冊 MySQL 服務,其中,xxx 可以任意取名。

    mysqld install mysql01
    D:\mysql-8.0.27-winx64\bin>mysqld install mysql01 Service successfully installed.D:\mysql-8.0.27-winx64\bin>
  • 此時,應該可以在 Windows 中看到剛剛注冊的 MySQL 服務。

  • 上面的配置文件編輯完成之后。使用如下命令初始化 MySQL 目錄。

    mysqld --initialize
    D:\mysql-8.0.27-winx64\bin>mysqld --initializeD:\mysql-8.0.27-winx64\bin>
  • 使用命令 net start xxx 啟動 MySQL 服務。其中,xxx 是前面起的 MySQL 服務名。

    net start mysql01
    D:\mysql-8.0.27-winx64\bin>net start mysql01 mysql01 服務正在啟動 . mysql01 服務已經啟動成功。D:\mysql-8.0.27-winx64\bin>

    【踩坑提醒】

    ??如果此處出現 服務無法啟動 的情況,請檢查:

    • 前面配置文件中的 MySQL 安裝目錄設置的是否正確

    • 前面配置文件中的 MySQL 數據庫數據存放目錄設置的是否正確

    • 前面配置文件中設置的端口號是否已被占用


  • 使用命令 mysql -u root -p -Pxxx 進入 MySQL 數據庫。其中,xxx 是前面在配置文件中設置的端口號。

    mysql -u root -p -P3306
  • 此處將會提示輸入密碼。這個密碼是由前面執行命令 mysqld --initialize 時生成的,它在前面設置的 數據庫數據存放目錄 中的文件 計算機名.err 中。具體方法是用記事本打開該文件,找到帶 password 的一行 A temporary password is generated for root@localhost:。此文字后面的就是生成的隨機密碼(此密碼不帶空格)。輸入密碼后即可進入數據庫。

    D:\mysql-8.0.27-winx64\bin>mysql -u root -p -P3306 Enter password: ****** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.0.27 MySQL Community Server - GPLCopyright (c) 2000, 2021, Oracle and/or its affiliates.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>

    【踩坑提醒】

    ??如果上面的命令省略參數 -Pxxx,則相當于提供的是 MySQL 默認端口號 3306。如果這與前面的配置文件中設置的不一致,這將引發如下報錯:

    ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost:3306' (10061)
  • 初次登錄之后需要修改密碼。修改密碼的命令為:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';。其中,新密碼 要被換成自己設置的密碼,且 新密碼 要位于單引號之中。

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'helloworld';
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'helloworld'; Query OK, 0 rows affected (0.02 sec)mysql>

    【踩坑提醒】

    ??在 MySQL 5.7 及以前的版本,修改密碼的命令是 set password for root@localhost =password(‘新密碼’);。如果在 MySQL 8.0 中使用該命令,會發生如下報錯:

    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'password(‘helloworld’)' at line 1
  • MySQL 登錄成功后,就可以使用 MySQL 語言來對數據庫進入控制了。

  • 在使用完數據庫后,就可以考慮退出了。退出 MySQL 的方法是,先使用命令 exit 來退出登錄。

    exit
    mysql> exit ByeD:\mysql-8.0.27-winx64\bin>
  • 使用命令 net stop xxx 退出 MySQL 服務。其中,xxx 是前面起的 MySQL 服務名。

    net stop mysql01
    D:\mysql-8.0.27-winx64\bin>net stop mysql01 mysql01 服務正在停止. mysql01 服務已成功停止。D:\mysql-8.0.27-winx64\bin>

    【提示】

    ??如果讀者非常愛干凈,可以在此處將前面注冊的 MySQL 服務也一并移除。使用命令 sc delete xxx 即可。其中,xxx 是前面起的 MySQL 服務名。

    sc delete xxx
    D:\mysql-8.0.27-winx64\bin>sc delete mysql01 [SC] DeleteService 成功D:\mysql-8.0.27-winx64\bin>

    ??但是,這樣做了之后,下次再登錄時,需要額外先執行前面的命令 mysqld install xxx 再次安裝 MySQL 服務。(此時只需要注冊 MySQL 服務,不需要執行 MySQL 初始化。)


  • 退出之后,如果需要再次登錄,只需要從前面的命令 net start xxx 開始進行即可。示例如下:

    D:\mysql-8.0.27-winx64\bin>net start mysql01 mysql01 服務正在啟動 . mysql01 服務已經啟動成功。D:\mysql-8.0.27-winx64\bin>mysql -u root -p -P3306 Enter password: ****** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.0.27 MySQL Community Server - GPLCopyright (c) 2000, 2021, Oracle and/or its affiliates.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>
  • MySQL 移植使用

  • 下面來進行數據庫移植。可以選擇先在原數據庫中創建一些初始數據,以供移植后驗證移植成功。這里假設已經完成了這個步驟。下面開始創建另一個 MySQL 服務。這個過程可以在前面那臺電腦上進行,也可以在另一臺電腦上進行。筆者已經分別進行了驗證,均已成功。

  • 將原電腦的 MySQL 安裝目錄拷貝到另一個任意目錄,這里以 E:\ 為例。在新 MySQL 服務中,各目錄如下

    • MySQL 安裝目錄:E:\mysql-8.0.27-winx64
    • MySQL 命令目錄:E:\mysql-8.0.27-winx64\bin
    • MySQL 數據庫數據存放目錄:E:\mysql-8.0.27-winx64\data
    • MySQL 端口號:3402

    【提示】

    ??準確地說,拷貝的時候只需要拷貝 MySQL 數據庫數據存放目錄 中的文件,而且在拷貝之后,登錄數據庫的密碼應該是原數據庫的密碼。


  • 對目錄下的配置文件 my.ini 中的 MySQL 安裝目錄 basedir、MySQL 數據存放路徑 datadir 作相應的修改。配置文件 my.ini 中的端口 port 要改成另一個不會與已有沖突的端口號。


    【踩坑提醒】

    ??很多人可能想著將 MySQL 數據庫數據存放目錄 設置成相對目錄,這樣將 MySQL 安裝目錄整個進行拷貝移動時也不需要修改配置文件。但實際上,這行不通。配置文件 my.ini 中記載的目錄不能是相對路徑。

    ??不過,這不是沒有應對的辦法,可以在 MySQL 啟動前,使用一種腳本代碼來將配置文件 my.ini 中的絕對路徑設置成正確的值。很多編程語言都可以實現這一點。


  • 使用管理員身份運行 CMD,并進入 MySQL 命令目錄。這里是: E:\mysql-8.0.27-winx64\bin。

  • 輸入命令 mysqld install xxx 在操作系統中注冊 MySQL 服務,其中,xxx 可以任意取名。

    mysqld install mysql02
    E:\mysql-8.0.27-winx64\bin>mysqld install mysql02 Service successfully installed.E:\mysql-8.0.27-winx64\bin>

    【注意】

    ??此處不需要再使用命令 mysqld --initialize 來初始化 MySQL 目錄,因為已經有了移植之后的數據了。


  • 使用命令 net start xxx 啟動 MySQL 服務。其中,xxx 是前面起的 MySQL 服務名。

    net start mysql02
    E:\mysql-8.0.27-winx64\bin>net start mysql02 mysql02 服務正在啟動 ... mysql02 服務已經啟動成功。E:\mysql-8.0.27-winx64\bin>
  • 使用命令 mysql -u root -p -Pxxx 進入 MySQL 數據庫。其中,xxx 是前面在配置文件中設置的端口號。此處應該會提示輸入密碼。如果移植是成功的,此密碼應該是移植前自設的密碼。

    mysql -u root -p -P3402
    E:\mysql-8.0.27-winx64\bin>mysql -u root -p -P3402 Enter password: ****** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.0.27 MySQL Community Server - GPLCopyright (c) 2000, 2021, Oracle and/or its affiliates.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>
  • 到這一步,就完成了 在 Windows 上安裝多個 MySQL,實現 MySQL 跨電腦移植使用 的全部步驟。讀者可以自行試一下,由于使用了不同的端口號,即便是在同一臺電腦上運行這兩個 MySQL 也不會也沖突,而且移植之后的數據依舊可以訪問。

  • 可以看出,在創建第二個 MySQL 服務時,只使用了一些 CMD 命令。只要將這些命令提前寫入任意的一種腳本語言中,就可以無障礙地實現對移植之后數據庫的訪問。歡呼吧,少年!

  • 附錄

    其它 MySQL 命令

    查看本 MySQL 數據存放目錄

    ??這需要先登錄所需要查詢的 MySQL 客戶端才行。如果已經登錄,輸入如下命令即可:

    show global variables like "%datadir%";

    總結

    以上是生活随笔為你收集整理的如何在 Windows 上安装多个 MySQL,实现 MySQL 跨电脑移植使用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。