docker部署mysql,使用navicat可视化工具进行连接

前提是大家已经安装好docker并调试好可用

1.首先建立一个通用网络

docker network create hm-net

2.使用命令来安装mysql

docker run -d \

--name mysql \

-p 3306:3306 \

-e TZ=Asia/Shanghai \

-e MYSQL_ROOT_PASSWORD=123 \

-v /root/mysql/data:/var/lib/mysql \

-v /root/mysql/conf:/etc/mysql/conf.d \

-v /root/mysql/init:/docker-entrypoint-initdb.d \

--network hm-net\

mysql

记录一个命令解读:-p 3306:3306 : 设置端口映射。

容器是隔离环境,外界不可访问。但是可以将宿主机端口映射容器内到端口,当访问宿主机指定端口时,就是在访问容器内的端口了。

容器内端口往往是由容器内的进程决定,例如MySQL进程默认端口是3306,因此容器内端口一定是3306;而宿主机端口则可以任意指定,一般与容器内保持一致。

格式: -p 宿主机端口:容器内端口,示例中就是将宿主机的3306映射到容器内的3306端口

这里注意端口号一定要正确

3.查看MySQL默认端口号

建议使用3306端口号 docker里MySQL默认端口号好像是3306,本地端口号不是3306的话,可能不会匹配。

cmd用管理员身份 登录MySQL:mysql -u root -p  

查看端口号:show global variables like 'port';

修改端口号:我的配置文件是在my.ini里面 直接修改 

[client]

port=3306

[mysqld]

port=3306

如果端口号被其他应用占用,任务管理器里停掉。

修改好后重启MySQL并检查是否修改完成。

4.通过命令查看mysql容器:docker ps
5.使用navicat测试连接

IP地址要与自己的linux中的IP一致 其他项正常填写

有的 navicat会报1251的错,出现这个问题的原因是MySQL8.0版本的加密方式和MySQL5.0的不一样,所以使用Navicat连接MySQL会报错。

我是这样解决:

容器内部:docker exec -it mysql bash

打开mysql数据库:mysql -uroot -p

查看用户信息:select host,user,plugin,authentication_string from mysql.user;

更改加密方式:ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

更改密码:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

最后刷新:FLUSH PRIVILEGES;

这时候我们去navicat测试连接,就可以连接上了。

希望对大家有帮助,我也是第一次做,一堆不懂得问题卡了2个小时才搞好

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值