您好,登錄后才能下訂單哦!
如何在Docker安裝中MySQL8?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
一、下載鏡像
docker Hub官網URL:https://hub.docker.com/_/mysql/
二、啟動鏡像
復制代碼 代碼如下:
docker run -d --name mysql -v /data/datadir:/var/lib/mysql -v /etc/mysql/my.cnf:/etc/mysql/my.cnf -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:tag
沒有/data/datadir路徑或/etc/mysql/my.cnf配置文件,可以使用默認,不需掛載
三、用戶授權
1、登錄已啟動的MySQL容器
docker exec -it mysql /bin/sh
2、使用啟動命令中-e MYSQL_ROOT_PASSWORD設置的密碼,登錄MySQL
mysql -uroot -p
3、執行授權命令,此處已root用戶為例
create user root@'192.168.0.2' identified by '123456'; grant all privileges on databas_name.* to root@'192.168.0.2'; ALTER USER 'root'@'192.168.0.2' IDENTIFIED WITH mysql_native_password BY '123456';
4、登錄MySQL
mysql -h 192.168.0.2 -u root -p
四、啟動命令中的環境變量
在啟動mysql映像時,您可以通過在docker run命令行上傳遞一個或多個環境變量來調整MySQL實例的配置。請注意,如果您使用已包含數據庫的數據目錄啟動容器,則下面的任何變量都不會產生任何影響:任何預先存在的數據庫在容器啟動時始終保持不變。
另請參閱https://dev.mysql.com/doc/refman/5.7/en/environment-variables.html以了解MySQL本身遵守的環境變量的文檔(特別是像這樣的變量MYSQL_HOST,這些變量在與此映像一起使用時會導致出現問題)。
MYSQL_ROOT_PASSWORD
該變量是強制性的,并指定將為MySQL root超級用戶帳戶設置的密碼。在上面的例子中,它被設置為my-secret-pw。
MYSQL_DATABASE
此變量是可選的,并允許您指定要在映像啟動時創建的數據庫的名稱。如果提供了用戶/密碼(見下文),那么該用戶將被授予對該數據庫的超級用戶訪問(對應于GRANT ALL)。
MYSQL_USER, MYSQL_PASSWORD
這些變量是可選的,可用于創建新用戶并設置該用戶的密碼。該用戶將被授予超級用戶權限(見上文),該權限由MYSQL_DATABASE變量指定。這兩個變量都是創建用戶所必需的。
請注意,不需要使用此機制來創建超級用戶的root用戶,該用戶默認情況下會使用MYSQL_ROOT_PASSWORD變量指定的密碼創建。
MYSQL_ALLOW_EMPTY_PASSWORD
這是一個可選變量。設置為yes允許容器以root用戶的空密碼啟動。注意:yes除非您真的知道您在做什么,否則不要將此變量設置為“不推薦”,因為這將使您的MySQL實例完全不受保護,從而允許任何人獲得完整的超級用戶訪問權限。
MYSQL_RANDOM_ROOT_PASSWORD
這是一個可選變量。設置yes為為root用戶(使用pwgen)生成隨機初始密碼。生成的root密碼將打印到stdout(GENERATED ROOT PASSWORD: .....)。
MYSQL_ONETIME_PASSWORD
一旦初始化完成,將root用戶(不是用戶指定的用戶MYSQL_USER)設置為已過期,強制首次登錄時更改密碼。注:該功能僅在MySQL 5.6+上受支持。在MySQL 5.5上使用此選項將在初始化期間引發相應的錯誤。
關于如何在Docker安裝中MySQL8問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。