使用docker 部署 mysql

下载mysql 镜像

  • 查看镜像版本
docker search mysql:8.0
  • 下载镜像
docke pull mysql:8.0

启动mysql镜像

docker run --name mysql --restart=always --network abc -e TZ=Asia/Shanghai -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d -i -p 3307:3306 mysql:8.0

设置严格模式

echo "sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION" >> /etc/mysql/my.cnf

设置时区

echo "default-time_zone='+8:00'" >> /etc/mysql/my.cnf

创建数据库

CREATE DATABASE IF NOT EXISTS my_db DEFAULT CHARSET utf8mb4 COLLATE utf8_general_ci;

执行sql文件

source \opt\mysql\data\crpt.sql;

创建root权限用户

create user 'change'@'%' identified with mysql_native_password by '123456';

用户授权

grant all on *.* to 'change'@'%' with grant option;

刷新配置

flush privileges;

遇到的问题

  • 容器由于权限不足导致配置不生效
mysgld:File '/etc/mysql/conf.d/my.cnf' notfound(0Serrno 13 - Permission denied)
  • 容器由于权限过高导致配置被忽略
world-writable config file "/etc/mysql/conf.d/my.cnf' is ignored.
end

评论