docker安装mysql8
要在 Docker 中安装 MySQL 8 并允许远程登录,请按照以下步骤进行配置:
-
拉取 MySQL 8 镜像:
从 Docker 官方镜像仓库拉取 MySQL 8 的最新版本镜像:
docker pull mysql:8 -
创建数据存储目录:
为了持久化存储 MySQL 数据,建议在宿主机上创建数据存储目录:
mkdir -p /docker/mysql8/data -
启动 MySQL 容器:
使用以下命令启动 MySQL 8 容器,并设置 root 密码为
your_password:docker run -p 3307:3306 \ --name mysql8 \ -e MYSQL_ROOT_PASSWORD=your_password \ -v /docker/mysql8/data:/var/lib/mysql \ -d mysql:8参数说明:
-p 3307:3306:将宿主机的 3307 端口映射到容器的 3306 端口。--name mysql8:为容器指定名称为mysql8。-e MYSQL_ROOT_PASSWORD=your_password:设置 MySQL 的 root 用户密码。-v /docker/mysql8/data:/var/lib/mysql:将宿主机的/docker/mysql8/data目录挂载到容器内的 MySQL 数据目录,实现数据持久化。-d mysql:8:在后台运行 MySQL 8 容器。
-
配置 MySQL 允许远程访问:
默认情况下,MySQL 8 使用
caching_sha2_password插件进行密码加密,这可能导致某些客户端无法连接。为确保兼容性,建议将认证插件设置为mysql_native_password。-
进入 MySQL 容器:
docker exec -it mysql8 bash -
登录 MySQL:
mysql -u root -p输入之前设置的 root 密码
your_password。 -
修改 root 用户的认证插件和密码:
ALTER USER 'root'@'%' IDENTIFIED WITH caching_sha2_password BY 'your_password'; FLUSH PRIVILEGES;这将允许 root 用户从任何主机使用
your_password密码进行连接。
-
-
重启 MySQL 服务:
退出 MySQL 并重启容器,使配置生效:
exit docker restart mysql8 -
验证远程连接:
使用 Navicat 等数据库客户端工具,连接到
your_server_ip的 3307 端口,用户名为root,密码为your_password,即可实现远程访问。
注意事项:
- 确保宿主机的 3307 端口未被其他服务占用,否则可以修改
-p参数中的端口号。 - 为了确保数据的持久化,建议将 MySQL 的数据目录挂载到宿主机的目录。
- 修改认证插件可能影响安全性,建议在生产环境中谨慎操作。
通过上述步骤,您即可在 Docker 中安装 MySQL 8 并配置为允许远程登录。

浙公网安备 33010602011771号