在docker里面运行mysql

2017-08-23  本文已影响0人  dessler

       本来


没那么快在docker上运行mysql的,最近给公司弄了一个网盘项目和wiki项目,都使用mysql数据库(centos7 使用yum安装的MariaDB),先安装网盘默认的配置,没有任何问题,然后安装wiki的时候发现数据库修改默认参数,

但是修改以后,wiki可以使用了,网盘项目缺不能用了,也就是两个项目对mysql参数多有要求,刚好两个参数还是相反的,这样一个mysql就无法满足要求了,就需要安装2个mysql,但是一个系统安装两个mysql好像也比较麻烦,刚好最近一直在调试docker+k8s,就用了docker来实现

1.下载MySQL的的镜像,由于宿主用是MariaDB,所以下载也是这个镜像

docker pull mariadb:5.5

2.运行docker

docker run -itd --restart=on-failure  -p 3309:3306 -e MYSQL_ROOT_PASSWORD=root --name mariadb -v /home/docker-mysql/mysql:/var/lib/mysql mariadb:5.5

参数解释:

-itd 后台运行

--restart=on-failure 如果docker不是退出代码0,他会自动重启,默认重启10次

-p 3309:3306 将宿主3309端口映射到docker3306上面

-e MYSQL_ROOT_PASSWORD=root  设置root的密码为:root

--name mariadb 设置docker的名字(docker ps可以看到)

-v /home/docker-mysql/mysql:/var/lib/mysql 映射本地目录到docker容器里面(如果里面存在该目录,会被覆盖)

3.测试连接(并创建数据库)

mysql -h 192.168.2.2 P3309 -uroot -proot (可以连接)

mysql -h localhost P3309 -uroot -proot(不能连接)

求大神解释下为什么不能用localhost

4.导入数据库

5.修改连接

这个版本的mysql默认居然支持root账号任意ip连接,也太不安全了

use mysql;

delete from user where host="%";

哈哈,我是直接删除root的任何ip登录权限,各位可以自己自己需要修改。

上一篇下一篇

猜你喜欢

热点阅读