# docker 中下载 mysql
docker pull mysql
#启动
docker run --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
# 只进行到这里无法使用navicat连接数据库,需进行如下配置
#进入容器
docker exec -it mysql-test bash
#登录mysql
mysql -u root -p 123456
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
#添加远程登录用户
CREATE USER 'user1'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'user1'@'%';
# 之后使用navicat连接user1账户即可使用
参数说明:
-p 3306:3306
:映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。【与--publish
效果一致】MYSQL_ROOT_PASSWORD=123456
:环境变量,用于设置 MySQL 服务 root 用户的密码。--name mysql-test
: 给容器设置别名为mysql-test-i
: 交互式操作-t
: 终端。-d
: 默认不进入容器【与--detach
】效果一致
命令说明:
- docker run:启动镜像
- docker exec:进入容器
- bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell 【与/bin/bash 效果一致】
- mysql:MySQL镜像
- exit:退出终端