Docker部署mysql并创建用户开启远程连接

一、写在前面

今天自己原本的mysql服务配置出了问题,刚好自己接触了容器技术,就想着自己使用docker重新部署一个mysql服务。

二、下载步骤

首先要获取mysql镜像(可以通过官网下载或者从公司的仓库获取),下面演示从官网下载步骤

2.1 docker search mysql,可以看到搜索的结果,这个结果是按照一定的星级评价规则排序的。
Docker部署mysql并创建用户开启远程连接_第1张图片

2.2 docker pull mysql:5.7.19 拉取一个合适版本的mysql到本地服务器

三、启动镜像

命令:docker run -p 3307:3306 -v $PWD/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456–name test_mysql -d 06b3678310d4

-p53307:3306:将容器的3307端口映射到主机的3306端口;

-v$PWD/mysql:/var/lib/mysql:将主机当前目录下的/mysql挂载到容器的/var/lib/mysql;

-e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码;

–name 给容器命名,test_mysql
-d 表示刚下载的镜像id

四、工具连接

使用navicat或者其他工具连接数据库,输入ip,端口号,用户名和密码。

可能会报这个错误,别急,往下看。
ERROR 1130: Host ‘192.168.20.69’ is not allowed to connect to this MySQL server。

解决方案:需要进入容器里修改mysql配置。
docker exec -it test_mysql bash

docker exec 进入容器

-t 让docker分配一个伪终端,并绑定到容器的标准输入上;

-i 让容器的标准输入保持打开;

test_mysql 是容器的名字。

五、局域网无法访问数据库的方法

mysql> grant all privileges on . to platform@"%" identified by “platform” with grant option;
Query OK, 0 rows affected, 1 warning (0.04 sec)

注意:这里platform可以任意命名,表示赋予这个账户的权限,这里是赋予所有的权限

刷新权限:
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

此时再用工具连接就可以了

提示:mysql的所有命令在进入容器里才可以使用。

你可能感兴趣的:(工具安装)