查找待拉取的镜像
mysql镜像地址:https://hub.docker.com/_/mysql?tab=tags 我使用的是5.3.37的版本:docker pull mysql:5.7.37 docker images 查看拉取得镜像
指定容器服务器挂载路径启动mysql(自命名名称,服务器路径会自动创建)
注意:同一镜像重复使用,需修改指定不同的默认端口
docker run -it \
--restart=always \
--name mysql_5.7 \
-v /usr/local/docker/mysql/cnf:/etc/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-v /usr/local/docker/mysql/log:/var/log \
-v /usr/local/docker/mysql/mysql-files:/var/lib/mysql-files \
-p 13307:3307 \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7.37
若要自定义配置文件启动mysql,则先停止并删除上述命令启动的容器docker stop 容器id/容器名 ,docker rm -f 容器id/容器名 ,然后再在/usr/local/docker/mysql/cnf下创建my.cnf文件,根据需要配置,然后再使用上述命令启动。
[client]
port=3307
default-character-set=utf8mb4
[mysqld]
port=3307
#数据库字符
character-set-server=utf8mb4
#排序规则
collation-server=utf8mb4_general_ci
#设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'
#是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names=1
#最大连接数
max_connections=150
#最大错误连接数
max_connect_errors=200
#MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中
back_log=80
#是否启用慢查询日志,1为启用,0为禁用
slow_query_log=1
#慢查询执行的秒数,必须达到此值可被记录
long_query_time=3
#慢查询日志
slow_query_log_file = /var/log/mysql-slow.log
#该参数代表binlog的过期时间,单位是天
expire_logs_days=15
查看mysql的启动情况
docker ps -a
若没有启动成功,使用命令查看启动日志并根据错误提示并解决
docker logs -f 容器id/容器名
启动成功则使用如下命令,进入容器终端
docker exec -it 容器id/容器名 bash
连接mysql
默认密码可查看日志获得,可能为空
mysql -uroot -proot
然后使用mysql数据库
use mysql;
修改root用户的密码(password自己修改)
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
刷新权限
flush privileges;
双重退出到服务器终端;
quit;
exit;
navicat连接mysql
使用端口13307
连接出错:
1、防火墙打开情况下,查看端口是否开放或查看防火墙对容器是否拦截。 2、ECS控制台,网络与安全——》安全组配置规则——》入方向,开放端口。
|