Docker安裝MySQL8的方法步驟
一、下載映象
docker Hub官網URL:https://hub.docker.com/_/mysql/
下載最新版本:docker pull mysql
下載指定版本:docker pull mysql:verison(8.0.11,8.0,8)
二、啟動映象
複製程式碼 程式碼如下: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上使用此選項將在初始化期間引發相應的錯誤。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。