官方文档
# 拉取mysql8
docker pull mysql
# 数据
-v /my/own/datadir:/var/lib/mysql
# 配置 (一般情况下会读取此文件夹下的.cnf文件)
MySQL的默认配置可以在/etc/MySQL/my.cnf中找到,可能!
包括其他目录,如/etc/mysql/conf.d或/etc/mysql/mysql.conf.d。请检查mysql映像中的相关文件和目录以了解更多详细信息。
如果/my/custom/config-file.cnf是您的自定义配置文件的路径和名称,您可以这样启动您的mysql容器(请注意,此命令中只使用自定义配置文件中的目录路径):
/etc/mysql/my.cnf
# 默认秘密
MYSQL_ROOT_PASSWORD=xxxx
# 运行
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
docker-compose.yml
version: '3'
services:
mysql-8:
image: mysql:latest
restart: always
environment:
- MYSQL_DATABASE=go_zero
- MYSQL_ROOT_PASSWORD=chenhaifeng
ports:
- "3306:3306"
volumes:
- ./datas/mysql/:/var/lib/mysql
- ./conf/mysql/my.cnf:/etc/mysql/my.cnf
- ./datas/mysql-files:/var/lib/mysql-files/
my.cnf
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
# 服务器默认字符集
character-set-server=utf8mb4
# 服务器的默认排序规则
collation-server=utf8mb4_general_ci
进入容器修改内容
docker exec -it xxx /bin/bash
1. 登录
mysql -uroot -p
xxxxx
2. 进入数据库
use mysql;
3. 设置加密方式
alter user 'root'@'%' identified with mysql_native_password by'xxxxxxx';
4. 刷新权限
FLUSH PRIVILEGES;
5. 查询权限
select host, user, plugin from user;