參考:https://blog.csdn.net/xsj34567/article/details/80940238
https://hub.docker.com/_/mysql
安裝
#2020-3-16更新 #使用以下命令啟動容器,不需要其他參數了 docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /data/mysql/data:/var/lib/mysql --name mysql --restart=always -d mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
docker pull mysql docker run \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=123456 \ -v /data/mysql/data:/var/lib/mysql:rw \ -v /data/mysql/log:/var/log/mysql:rw \ -v /data/mysql/mysql-files:/var/lib/mysql-files:rw \ -v /data/mysql/conf:/etc/mysql/conf.d:rw \ -v /etc/localtime:/etc/localtime:ro \ --name mysql8 \ --restart=always \ -d mysql --lower_case_table_names=1 #單行 #docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /data/mysql/data:/var/lib/mysql:rw -v /data/mysql/log:/var/log/mysql:rw -v /data/mysql/conf:/etc/mysql:rw -v /data/mysql/mysql-files:/var/lib/mysql-files:rw -v /etc/localtime:/etc/localtime:ro --name mysql8 --restart=always -d mysql --lower_case_table_names=1
#掛載conf.d 僅在以自定義配置文件運行mysql容器時使用; #以下為3個常用配置: --lower-case-table-names=1 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci #如果還需要知道其他配置,可以使用以下命令: docker run -it --rm mysql:tag --verbose --help mysql/data 是數據庫文件存放的地方。必須要掛載到容器外,否則容器重啟一切數據消失。 mysql/log 是數據庫主生的log。建議掛載到容器外。 mysql/conf 是數據庫的配置文件 /etc/localtime:/etc/localtime:ro 是讓容器的時鍾與宿主機時鍾同步,避免時區的問題,ro是read only的意思,就是只讀。
配置mysql 用戶
#進入容器
docker exec -it mysql bash
#root登陸 ,輸入密碼
mysql -u root -p
#查詢所有用戶
use mysql; select user,host,authentication_string,plugin from user; #創建一個用戶 create user 'web'@'%' identified by '123456'; #授權 grant all privileges on *.* to 'web'@'%' with grant option; #設置所有host可連接 update user set host='%' where user='web'; #設置密碼永不過期 ALTER USER 'web'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; #設置密碼類型 ALTER USER 'web'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; #刷新 FLUSH PRIVILEGES;
#創建數據庫 CREATE DATABASE `Core` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci';