当前位置: 首页 > news >正文

navicat 连接docker容器里面mysql服务失败解决

容器默认只允许root本地访问,需要设置对外远程访问的root用户

  • 一、报错情况:
  • 二、解决办法:容器默认只允许root本地访问,需要设置对外远程访问的root用户

一、报错情况:

我在linux服务器上面装了docker,启动了docker里面的mysql服务,在本地电脑nacicat premium 12连接服务器上面的mysql服务一直失败,连接不上,出现这样的错误。
在这里插入图片描述

二、解决办法:容器默认只允许root本地访问,需要设置对外远程访问的root用户


1.进入mysql容器里面,命令:docker exec -it acbcfcdb9eeb(容器id) (镜像名称也可容器id也可) /bin/bash 。
sudo docker exec -it mysql mysql -uroot -p

在这里插入图片描述

  1. 先查看当前存在的 root 用户
    登录 MySQL 后,执行以下命令,查看 root 用户的主机限制(Host 字段):
SELECT User, Host FROM mysql.user WHERE User = 'root';

在这里插入图片描述
3. 根据查询结果处理
如果结果中有 ‘root’@‘localhost’ 但没有 ‘root’@‘%’:
说明 root 用户默认只允许本地(容器内部)访问,则需要创建一个可远程访问的root用户即 ‘root’@‘%’ 用户,再修改密码:
sql

-- 创建允许远程访问的 root 用户
CREATE USER 'root'@'%' IDENTIFIED BY 'root';
-- 授予权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
-- 刷新权限
FLUSH PRIVILEGES;
-- 再修改密码加密方式(如果需要)
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

在这里插入图片描述

  1. 验证配置
    修改后再次执行刷新权限命令,然后退出 MySQL 并重启容器(可选):
# 退出 MySQL
exit;
# 重启容器(使配置生效)
docker restart mysql

在这里插入图片描述

这样处理后,再用 Navicat 连接 linux的ip:3306 通常就能成功了。

http://www.dtcms.com/a/322653.html

相关文章:

  • 传输线的瞬时阻抗
  • UE破碎Chaos分配模型内部面材质
  • Jmeter性能测试之安装及启动Jmeter
  • Nginx 安全加固与服务监控体系
  • 如何无损压缩图片至原大小的10%?
  • ComfyUI——舒服地让大模型为我所用
  • 常用性能测试工具及使用方法介绍
  • 【内核配置】CONFIG_DEBUG_USER 配置项原理分析
  • 线程安全的单例模式,STL和智能指针
  • golang的二维数组
  • 直接插入排序算法:可视化讲解与C语言实现
  • 【R语言】单细胞数据整合质量评估(3)
  • Matlab 基于BP神经网络结合Bagging(BP-Bagging)集成算法的单变量时序预测 (单输入单输出)
  • Linux运维新手的修炼手扎之第26天
  • Effective C++ 条款31: 将文件间的编译依存关系降至最低
  • 飞算JavaAI:人工智能与Java的创新融合与应用前景
  • 5、docker镜像管理命令
  • Qt/C++开发监控GB28181系统/实时监测设备在线离线/视频预览自动重连/重新点播取流/低延迟
  • MySQL 复制表详细说明
  • 某金融APP防护检测分析
  • PromptPilot打造高效AI提示词
  • 智慧农业-无人机视角庄稼倒伏农作物倒伏检测数据集VOC+YOLO格式541张1类别
  • 计算机视觉CS231n学习(6)
  • 跨境电商系统开发:ZKmall开源商城的技术选型与代码规范实践
  • 3D感知多模态(图像、雷达感知)
  • node.js 零基础入门
  • LangChain-Unstructured 基础使用:PDF 与 Markdown 处理解析
  • SwiftUI 登录页面键盘约束冲突与卡顿优化全攻略
  • 为什么动态导入中Vite无法正确解析别名路径?
  • 如何在 Excel 中快速求和?【图文详解】Excel求和技巧,Excel求和公式大全,多种方式求和