Mac下配置Docker——Mysql

下载 

docker pull mysql

默认下载的是8

sudo docker run --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql

目前使用Mysql8的Image,使用客户端连接会出现以下错误


 

分析原因是由于Mac本地使用的Mysql5.7的Dirver。无法访问Mysql8。

下载5.7之后,真的成功了。

如上图所示,当然还有一个database才能通过客户端连接上。

>sudo docker exec -it mysql bash

bennydeMacBook-Pro:~ benny$  sudo docker run --name mysql57 -p 3309:3306 -e MYSQL_ROOT_PASSWORD=111111 -d mysql:5.7
Password:
9a5589f2defffa8b689fb230b4d3fc9b92df0549d7226884461aad1ee15e5e14
bennydeMacBook-Pro:~ benny$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                NAMES
9a5589f2deff        mysql:5.7           "docker-entrypoint.s…"   5 seconds ago       Up 4 seconds        33060/tcp, 0.0.0.0:3309->3306/tcp    mysql57
a04a10919539        mysql               "docker-entrypoint.s…"   About an hour ago   Up 17 minutes       33060/tcp, 0.0.0.0:12345->3306/tcp   mysql
e06dcc39029e        centos-net          "/bin/bash"              17 hours ago        Up 17 hours         0.0.0.0:32775->80/tcp                lucid_kowalevski
bennydeMacBook-Pro:~ benny$ docker kill a04a10919539
a04a10919539
bennydeMacBook-Pro:~ benny$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
9a5589f2deff        mysql:5.7           "docker-entrypoint.s…"   22 seconds ago      Up 21 seconds       33060/tcp, 0.0.0.0:3309->3306/tcp   mysql57
e06dcc39029e        centos-net          "/bin/bash"              17 hours ago        Up 17 hours         0.0.0.0:32775->80/tcp               lucid_kowalevski
bennydeMacBook-Pro:~ benny$ sudo docker exec -it mysql57 bash

其中需要进行端口的重映射

mysql -uroot -p

然后使用以上命令,真的可以启动了Mysql了

防火墙设置

如果是本地服务器需要打开防火墙相应的端口

1. 查看已经开放的端口 firewall-cmd --list-ports

2. 开放80端口 firewall-cmd --zone=public --add-port=80/tcp --permanent

3. 重启防火墙 firewall-cmd --reload

4. 停止防火墙 systemctl stop firewalld.service

5. 禁止防火墙 systemctl disable firewalld.service

6. 删除 firewall-cmd --zone=public --remove-port=80/tcp --permanent

如果是云服务器,配置安全组就可以了,以腾讯云为例

Utf-8的设置

可以在客户端工具里支持进行修改,我使用的是Dbeaver。

当然以上方法需要每个表进行修改,因为这时整个Database默认使用的还是latin。

还可以通过修改配置文件 的方法

http://www.cnblogs.com/liyingxiang/p/5877764.html

但由于Docker中没有VI,可以通过-v命令进行在宿主上定义配置文件,后映射到容器中。

https://www.cnblogs.com/cfrost/p/6241892.html

MySQL常用命令

mysql -v

mysql> show databases;

mysql> show tables; //需要先选择一个数据库

mysql> use database;

DBeaver 驱动问题

由于家里的网不是很好,Mysql8的驱动无法下载。

单独下载了两个文件,版本低一点,但也好用。可以从以下百度网盘下载。

链接:https://pan.baidu.com/s/1b97D8kjqSKi8ET3oRQBbww 
提取码:cyhc 
复制这段内容后打开百度网盘手机App,操作更方便哦

发布了51 篇原创文章 · 获赞 10 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/FeiBin2013/article/details/84099433