編碼的世界 / 優質文選 / 歷史

在Win版的Docker裏安裝mysql


2022年7月24日
-   

一、下載mysql鏡像打開官網https://hub.docker.com
搜索mysql,可下載這個mysql/mysql-server優化的鏡像。

打開PowerShell,輸入命令來下載指定版的mysql鏡像。
docker pull mysql/mysql-server:5.7.21
也可用“docker pull mysql/mysql-server”命令來下載最新版本
二、運行鏡像的實例
下載完鏡像後,輸入命令來運行鏡像的實例。(同時設置了全局字符集為utf8mb4)
docker run name mysql01 -d -p 3306:3306 mysql/mysql-server:5.7.21 character-set-server=utf8mb4 collation-server=utf8mb4_general_ci
運行完成後輸入docker ps命令來查看正在運行中的容器實例。當看到Status為healthy時表示已啟動完畢。

三、修改root賬號的默認密碼使用docker logs mysql01命令來查看此容器的日志。可以看到mysql01實例的root賬號的默認密碼是一串隨機的字符串。

輸入docker exec -it mysql01 bash命令進入容器
然後使用root賬號和默認密碼登錄mysql01數據庫實例。輸入命令mysql –uroot -p

(先複制到記事本再複制一次,然後輸入密碼時只需點一下右鍵就OK了)接著輸入命令來修改root的密碼(注意命令以英文的分號結束)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'abc123456';

修改密碼成功後,輸入exit;命令退出mysql,再次輸入exit;退出容器,回到windows。
四、創建一個新的登錄用戶打開官網https://dev.mysql.com/doc 在搜索框輸入user,再找到一個create user的文章。我找的文章地址為https://dev.mysql.com/doc/refman/5.7/en/create-user.html根據此文章的說明來創建新的登錄用戶。應該接著第三步,不exit;退出例如:CREATE USER 'abc'@'%' IDENTIFIED BY 'abc123456' require none; 這個命令將創建一個名稱為abc密碼為abc123456的賬號,其中的百分號表示此賬號可通過外部登錄到mysql,如果把百分號改為localhost則表示只能在本機登錄mysql。“require none”可以不寫,默認就是它。有require X509, require SLL等 ,在官網文章中有詳細說明。這裏我使用命令CREATE USER 'abc'@'%' IDENTIFIED BY 'abc123456' require none;來創建一個用戶。然後輸入命令use mysql;(類似sqlserver中的use master)切換到mysql系統庫。
然後輸入命令select user,host from user;來查看所有賬號的情況。

創建完賬戶後需要設置它的權限我找的官網文章地址是https://dev.mysql.com/doc/refman/5.7/en/adding-users.html
輸入命令GRANT ALL PRIVILEGES ON *.* TO 'abc'@'%' WITH GRANT OPTION; 完成權限設置。

權限設置好後用桌面工具NavicatForMySql來連接docker中的mysql01。如下圖

熱門文章