# 1. 拉取 MySQL 8 官方镜像 docker pull mysql:8.0# 2. 创建数据和配置目录(实现数据持久化) mkdir -p /opt/mysql/{data,conf,logs} chmod -R 777 /opt/mysql # 赋予权限,避免容器内权限问题# 3. 创建自定义配置文件(可选,优化 MySQL 性能) cat > /opt/mysql/conf/my.cnf << EOF [mysqld] # 端口设置 port=3306 # 字符集配置 character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci # 数据存储目录(容器内路径) datadir=/var/lib/mysql # 日志配置 log-error=/var/log/mysql/error.log slow_query_log=1 slow_query_log_file=/var/log/mysql/slow.log long_query_time=2 # 其他优化参数 max_connections=1000 default-time-zone='+8:00' # 设置时区为东八区 EOF# 4. 启动 MySQL 容器(后台运行) docker run -d --name mysql8 -p 3306:3306 --restart=always -e MYSQL_ROOT_PASSWORD=YourRootPassword -e MYSQL_INITDB_SKIP_TZINFO=1 -v /opt/mysql/data:/var/lib/mysql -v /opt/mysql/conf/my.cnf:/etc/mysql/conf.d/my.cnf -v /opt/mysql/logs:/var/log/mysql mysql:8.0# 5. 验证容器是否启动成功 docker ps | grep mysql8# 6. 进入 MySQL 容器并登录 docker exec -it mysql8 mysql -u root -p # 输入步骤 4 中设置的 root 密码(YourRootPassword)# 7. 登录后可执行的操作(示例) # 查看数据库版本 # SELECT VERSION(); # 创建新用户并授权 # CREATE USER 'newuser'@'%' IDENTIFIED BY 'userpassword'; # GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%' WITH GRANT OPTION; # FLUSH PRIVILEGES;