这份文档将指导您在 Docker 容器中运行 MySQL,并配置允许 root 用户远程访问。以下是详细的步骤和参数解释:
使用以下命令在 Docker 中启动 MySQL 5.7.14 容器:
docker run -d --restart=always -p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=my_password \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_HOST="%" \
-v $PWD/mysql-bin:/usr/local/mysql/data/mysql-bin \
-v $PWD/data:/var/lib/mysql \
-v $PWD/logs:/var/log/mysql \
-v $PWD/mysql.conf.d:/etc/mysql/mysql.conf.d \
mysql:5.7.14
-d
: 以守护进程方式在后台运行容器。--restart=always
: 容器退出后会自动重启。-p 3306:3306
: 将容器的 MySQL 默认端口 3306 映射到主机的 3306 端口。-e MYSQL_ROOT_PASSWORD=my_password
: 设置 MySQL 的 root 用户密码(请更改为您的安全密码)。-e TZ=Asia/Shanghai
: 设置容器的时区为亚洲/上海时区。-e MYSQL_ROOT_HOST="%"
: 允许 root 用户从任何主机(%)远程访问 MySQL。-v $PWD/mysql-bin:/usr/local/mysql/data/mysql-bin
: 将容器中 MySQL 的 binlog 存储到主机的 $PWD/mysql-bin
目录。-v $PWD/data:/var/lib/mysql
: 将 MySQL 数据目录挂载到主机的 $PWD/data
目录。-v $PWD/logs:/var/log/mysql
: 将 MySQL 的日志目录挂载到主机的 $PWD/logs
目录。-v $PWD/mysql.conf.d:/etc/mysql/mysql.conf.d
: 将 MySQL 的配置文件目录挂载到主机的 $PWD/mysql.conf.d
目录。现在,root 用户可以通过远程连接到 MySQL 数据库。使用 MySQL 客户端或其他数据库工具,在远程机器上连接到 MySQL 服务器:
root
若要进行自定义配置,请执行以下操作:
创建配置文件夹:
mkdir mysql.conf.d
编辑配置文件 mysqld.cnf
:
vim ./mysql.conf.d/mysqld.cnf
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
log-error = /var/log/mysql/error.log
symbolic-links = 0
lower_case_table_names = 1
max_connections = 10000
server-id = 1
log-bin = /usr/local/mysql/data/mysql-bin
expire_logs_days = 2
修改以上参数以满足您的需求。
调整配置文件权限:
chmod 640 mysqld.cnf
docker run
命令中可以更改端口号、数据库名称或密码。停止 MySQL 容器,可使用以下命令:
docker stop CONTAINER_ID
删除 MySQL 容器,可使用以下命令:
docker rm CONTAINER_ID
使用 Docker 命令运行 MySQL 并允许 root 用户进行远程访问,为开发和测试环境提供了灵活性。在生产环境中需加强安全措施以确保系统安全。