单实例MySQL:快速部署指南

核心部署命令

docker run -d \
  -p 3306:3306 \
  --name mysql \
  -v /home/mysql/log:/var/log/mysql \
  -v /home/mysql/data:/var/lib/mysql \
  -v /home/mysql/conf:/etc/mysql/conf.d \
  --restart=always \
  -e MYSQL_ROOT_PASSWORD=123456 \
  mysql:5.7

参数详解

参数说明必要性
-d后台运行容器必选
-p 3306:3306端口映射(主机端口:容器端口)必选
--name mysql指定容器名称推荐
-v /home/mysql/log:/var/log/mysql挂载日志目录可选
-v /home/mysql/data:/var/lib/mysql挂载数据目录(关键!)必选
-v /home/mysql/conf:/etc/mysql/conf.d挂载配置文件目录推荐
--restart=always自动重启策略生产环境建议
-e MYSQL_ROOT_PASSWORD=123456设置root密码必选
mysql:5.7镜像地址可替换为自定义镜像

配置不区分大小写(重要步骤)

  1. 创建配置文件:

    vi mysqld.cnf
  2. 写入以下内容:

    [mysqld]
    lower_case_table_names=1  # 关键配置:表名不区分大小写
    pid-file = /var/run/mysqld/mysqld.pid
    socket = /var/run/mysqld/mysqld.sock
    datadir = /var/lib/mysql
    symbolic-links=0
  3. 应用配置:

    docker cp mysqld.cnf mysql:/etc/mysql/mysql.conf.d/mysqld.cnf
    docker restart mysql

关键目录说明

主机目录容器目录作用
/home/mysql/data/var/lib/mysql数据库文件存储位置
/home/mysql/conf/etc/mysql/conf.d自定义配置文件
/home/mysql/log/var/log/mysql日志文件

验证安装

# 进入容器
docker exec -it mysql bash

# 登录MySQL
mysql -uroot -p123456

# 查看配置是否生效
SHOW VARIABLES LIKE 'lower_case%';

注意事项

  1. 数据安全:确保/home/mysql/data目录定期备份
  2. 密码安全:生产环境应使用复杂密码,建议通过--env-file传递密码
  3. 网络安全:如需远程访问,建议:

    • 修改bind-address = 0.0.0.0
    • 配置防火墙规则
  4. 性能优化:根据服务器配置调整innodb_buffer_pool_size等参数

常见问题解决方案

Q:启动失败提示"权限被拒绝"?

chown -R 999:999 /home/mysql/data  # MySQL容器默认使用999用户

Q:如何迁移数据?

# 只需将/home/mysql/data目录复制到新服务器
# 使用相同的docker run命令启动即可

Q:如何升级版本?

docker stop mysql
docker rm mysql
# 备份数据目录后,修改镜像版本号重新运行

通过这种部署方式,您将获得一个:

  • 数据持久化的MySQL实例
  • 表名不区分大小写(兼容Windows开发环境)
  • 配置可灵活修改的数据库服务

添加新评论