1、拉取镜像
# 此命令下载的是最新版
docker pull mysql
# 此命令下载的是指定版本的
docker pull mysql:5.7
2、运行
docker run \
-p 3306:3306 \
--name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=YOURPASSWORD \
-d mysql:5.7
3、配置
3.1 远程访问配置
本地利用Navicat连接部署在服务器的mysql,可能遇见的报错:
message from server: "Host ‘远程访问的主机ip’ is not allowed to connect to this MySql server
除了可能未开放服务器防火墙3306端口,还可能未配置mysql远程访问的权限。未开放权限解决方案如下:
// 1、进入mysql容器
docker exec -it mysql /bin/bash
// 2、切换表
use mysql;
// 3、修改ip为允许所有地址可访问
update user set host = '%' where user = 'root';
// 4、查看修改结果
select host, user from user;
// 5、刷新权限
FLUSH RIVILEGES
3.2 时区配置
首先需要连接上数据库(服务端docker进入mysql容器或者本地使用Navicat连接都可以)
select now();
如果发现显示时间与本地一致则不用修改,如果相差8个小时说明时区需要修改。
// 修改全局时间
set global time_zone = '+08:00';
// 修改当前会话时间
set time_zone = '+08:00';
// 刷新
flush privileges;
// 再次查看时间,发现一致
select now();
4、其他
注意:建议一步到位给mysql设置复杂的密码,不然容易被乞丐影响心情。警示警示!
mysql> set password for root = password('NEW_PASSWORD');