docker部署mysql:8,使用navicat连接的步骤和出现的问题总结

1.镜像拉取

docker pull mysql:8

2.启动mysql容器

①  先在服务器中创建需要挂载的文件

mkdir /etc/mysql/cnf

mkdir /etc/mysql/data

mkdir /etc/mysql/log

还需要再/etc/mysql/cnf 的文件夹下面创建mysql的配置文件my.cnf 用于挂载

[mysqld]
server-id=1211212
## 开启binlog
log-bin=mysql-bin
## binlog缓存
binlog_cache_size=1M
## binlog格式(mixed、statement、row,默认格式是statement)
binlog_format=mixed
secure_file_priv=/var/lib/mysql
default_time_zone ='+8:00'
#skip-grant-tables  

#--skip-host-cache
skip-name-resolve
[client]
default-character-set = utf8mb4

参数说明:

server-id 服务id,可自行数字定义,若存在多个mysql服务,应不同

log-bin,binlog_cache_size,binlog_format 都是对日志的设置,没有相关需要,可不设置

default_time_zone 时区配置,这个不配置的话,可以在容器启动的时候,挂载本地的/etc/localtime时间到容器中,如果都不设置,会导致mysql内部的时间不准确

skip-grant-tables 这个字段用于忘记密码时登录mysql跳过验证,不需要密码直接进入,再进行密码的修改

skip-name-resolve 禁止mysql反向解析DNS,这就会涉及到一个可能出现的问题

在日志中,会频繁报该提醒,就是因为mysql的反向解析DNS导致的问题,添加该字段可以直接禁止,

② 使用命令启动mysql容器

docker run -id -p 3306:3306 --name privacy-computing-mysql --privileged=true 
-v /etc/mysql/cnf:/etc/mysql 
-v /etc/mysql/log:/var/log/mysql 
-v /etc/mysql/data:/var/lib/mysql  
-v /etc/localtime:/etc/localtime:ro 
-e MYSQL_ROOT_PASSWORD=***  
-d mysql:8

如果在my.cnf中已经配置了时区,这边/etc/localtime就不需要挂载了,

在启动的时候,可能会出现以下问题导致启动失败,

Failed to access directory for --secure-file-priv. Please make sure 
that directory exists and is accessible by MySQL Server. Supplied value : /var/lib/mysql-files

这时候,需要在上面创建的my.cnf文件中

在[mysqld]内加入secure_file_priv=/var/lib/mysql

3.使用navicat连接

① 使用navicat客户端连接

 

② 可能出现的问题

 1)  该问题是因为你的连接没有远程连接的权限,只能本地连接使用

解决:

需要修改host表 

先进入mysql服务中

更改host字段的值

update user set host='%' where host='localhost';

刷新

flush privileges;

2) navicat报错Client does not support authentication protocol requested by server client

原因: mysql8的加密规则修改,再加上navicat的版本过低,导致的无法连接

解决:

第一种: 升级当前使用的navicat,

第二种:修改加密方式

这里的password 是自己的密码 

alter user 'root'@'%' identified by 'password' password expire never;
 
alter user 'root'@'%' identified with mysql_native_password by 'root';
 
flush privileges;

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值