Docker 安装 Mysql5.7
OriginalAbout 2 min
Docker 安装 Mysql5.7
本文记录Docker容器安装Mysql5.7的详细步骤
创建并启动容器
下载Mysql镜像
# 默认下载MySQL5.7最新版本(其他版本可以指定比如 docker pull mysql:5.7.34)
docker pull mysql:5.7
查看已下载镜像
docker images
创建mysql容器
快捷添加
# 创建一个名为mysql的容器,密码123
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
挂载宿主机添加
# 宿主机创建数据存放目录映射到容器
mkdir -p /usr/local/docker_data/mysql/data
# 宿主机创建配置文件目录映射到容器
mkdir -p /usr/local/docker_data/mysql/conf
mkdir -p /usr/local/docker_data/mysql/conf/conf.d # (建议在此目录创建my.cnf文件并进行相关MySQL配置)
mkdir -p /usr/local/docker_data/mysql/conf/mysql.conf.d
# 宿主机创建日志目录映射到容器
mkdir -p /usr/local/docker_data/mysql/logs
# 创建容器并启动
docker run --privileged=true --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d -v /usr/local/docker_data/mysql/data:/var/lib/mysql -v /usr/local/docker_data/mysql/conf:/etc/mysql/ -v /usr/local/docker_data/mysql/logs:/var/log/mysql mysql:5.7
参数说明
参数 | 说明 |
---|---|
–name mysql5.7 | 容器名称 |
-p 3306:3306 | 端口映射(宿主机端口:容器端口) |
-e MYSQL_ROOT_PASSWORD=123456 | 容器的环境变量(root账号初始化密码) |
-d | 后台运行容器 |
-v /usr/local/docker_data/mysql/data:/var/lib/mysql | 容器MySQL数据目录映射(宿主机:容器) |
-v /usr/local/docker_data/mysql/conf:/etc/mysql/ | 容器MySQL配置目录映射(宿主机:容器) |
-v /usr/local/docker_data/mysql/logs:/var/log/mysql | 容器MySQL日志目录映射(宿主机:容器) |
mysql:5.7 | 指定docker镜像 (可以是镜像名称或者镜像ID) |
查看容器是否启动成功
docker ps
进入容器
docker exec -it mysql bash
修改密码、创建远程账号
# 登录MySQL
mysql -u root -p
# 查看root用户信息
select user,host,plugin from mysql.user where user='root';
# 修改root用户密码,加密方式mysql_native_password
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Yanggl2549597630';
# 创建新账户,开启远程登录
CREATE USER 'yanggl'@'%' IDENTIFIED WITH mysql_native_password BY 'Yanggl1996';
# 授权所有权限 all代表所有权限,*.* 第一个*代表所有库,第二个*代表库中所有表
GRANT ALL PRIVILEGES ON *.* TO 'yanggl'@'%';
# 刷新
flush privileges;
退出,重启mysql容器
docker restart mysql
Navicat远程登录
检查防火墙
- 检查服务器提供商防火墙是否已经开放3306端口
- 检查服务器内防火墙是否打开且开放3306端口
使用创建远程连接的账号登录
- ip为服务器ip地址
- 端口为服务器映射的端口