这里配置只做开发用,生产环境请根据需要修改或自行搜索其他说明
使用docker安装mysql,目前版本5.7.4(当前时间 2018.1.11)
环境 vm: Centos7
镜像来源 https://dashboard.daocloud.io/packages/fa51c1d6-9dc2-49d9-91ac-4bbfc24a1bda
镜像地址 : daocloud.io/library/mysql
执行脚本:
docker run --name some-mysql -p 3306:3306 -v /etc/mysql/myconf/:/etc/mysql/conf.d -v /opt/mysql/mysqldata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=admin -d mysql:5.7.34
-d 容器在后台运行
-e MYSQL_ROOT_PASSWORD=admin 配置mysql root的密码
-v 对mysql 的配置文件和数据存储路径进行映射到宿主机,对数据持久化
my.cnf是配置文件名,(可以是空文件,有需要的时候再修改)。/etc/mydockercfg/mysql和/opt/mysql/data是宿主机目录
-p 端口映射
--name 定义容器的名称
--lower_case_table_names=1 定义数据库不区分表名大小写
--character-set-server=utf8mb4 设置数据库字符集为utf-8(解决中文乱码的问题)
--collation-server=utf8mb4_unicode_ci utf8字符排序规则
mysql:latest 镜像名称 latest最新版本,可以省略 (mysql <=> mysql:latest),也可以使用镜像mariadb (mysql的一个分支)
修改为允许远程连接
进入容器
安装后可以看到容器id (CONTAINER ID)
使用容器Id或者容器名称进入 docker exec -it <ContainerId,ContainerName> /bin/bash
docker exec -it 38ab20fe881b /bin/bash
输入命令 mysql -u root -p, 然后输入密码 进入mysql控制台
mysql -u root -p
输入命令,修改远程权限。
grant all privileges on *.* to 'root'@'%' ;
刷新权限。
flush privileges;
相关资料:
Docker 安装MySQL | 菜鸟教程:http://www.runoob.com/docker/docker-install-mysql.html
docker mysql 数据持久化到本地、设置不区别表名大小写 http://blog.51cto.com/binuu/1943176
mariadb镜像地址: https://hub.docker.com/_/mariadb/