這里記錄一下使用Docker-compose安裝MySQL的筆記
1、創(chuàng)建Dockerfile
首先,創(chuàng)建目錄mysql,用于存放后面的相關(guān)東西。
root@Docker:~$ mkdir -p ~/mysql/data ~/mysql/logs ~/mysql/conf
data目錄將映射為mysql容器配置的數(shù)據(jù)文件存放路徑
logs目錄將映射為mysql容器的日志目錄
conf目錄里的配置文件將映射為mysql容器的配置文件
進入創(chuàng)建的mysql目錄,創(chuàng)建Dockerfile

image
version: '3.1'
services:
mysql:
restart: always
image: mysql:5.7.22
container_name: mysql
ports:
- 3306:3306
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 12345678
command:
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
--max_allowed_packet=128M
--sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
volumes:
- mysql-data:/var/lib/mysql
volumes:
mysql-data:
2. 啟動容器
默認(rèn)情況,docker-compose up啟動的容器都在前臺,控制臺將會同時打印所有容器的輸出信息,可以很方便進行調(diào)試。當(dāng)通過 Ctrl-C 停止命令時,所有容器將會停止。如果使用docker-compose up -d,將會在后臺啟動并運行所有的容器。一般推薦生產(chǎn)環(huán)境下使用該選項。
3.進入容器
首先查看容器狀態(tài),如果啟動成功了,進入容器 docker exec -it mysql /bin/bash
登錄MySQL,mysql -u root -p

image
4.修改遠程訪問權(quán)限
use mysql;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '12345678' WITH GRANT OPTION;
FLUSH PRIVILEGES;
這里的12345678為你給新增權(quán)限用戶設(shè)置的密碼,%代表所有主機,也可以具體到你的主機ip地址
②flush privileges; 這一步一定要做,不然無法成功! 這句表示從mysql數(shù)據(jù)庫的grant表中重新加載權(quán)限數(shù)據(jù) 因為MySQL把權(quán)限都放在了cache中,所以在做完更改后需要重新加載。