使用unix_socket登录MySQL帐户

2023-12-22

我已经创建了一个从机器 A 到机器 B 的转发器(通过 SSH)。机器 B 有一个正在运行的 MySQL 实例,其 root 帐户使用unix_socket验证:

+----------+-----------+-------------+
| User     | Host      | plugin      |
+----------+-----------+-------------+
| root     | localhost | unix_socket |
+----------+-----------+-------------+

无论我使用什么密码(空白、Linux root 密码等),我都无法从机器 A 以 root 身份登录:

machineA:~$ mysql -h 127.0.0.1 -P 1111 -u root -p
Enter password: 
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
machineA:~$ mysql -h 127.0.0.1 -P 1111 -u root
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

如果我尝试使用非 root 帐户从机器 B 登录 mysql,也会发生同样的情况。

如何登录MySQL?


要连接到远程 MySQL 服务器,无论是直接连接还是通过 SSH 隧道,您都不能使用unix_socket身份验证插件,需要对数据库服务器操作系统上的 unix 套接字文件进行本地访问。

The unix_socket插件是使用特殊类型的文件(unix 套接字)实现的,它是 *nix 系统中进程间通信(IPC)的一种形式。它允许您的 mysql CLI 客户端与数据库对话,并且需要本地访问套接字文件(即:/tmp/mysql.sock)。当您连接到套接字时,unix_socket插件(服务器端)将获取连接到套接字的用户的 uid(即:youruser),并自动对您进行身份验证,无需密码。

可能的解决方案:

如果使用非 root 用户连接到机器 B,则需要创建一个与非 root 操作系统用户帐户名同名的 DB 用户。

GRANT ALL PRIVILEGES ON *.* TO 'youruser'@'localhost' IDENTIFIED VIA unix_socket;

现在,您可以使用您的用户帐户和 mysql CLI 客户端连接到 mysql,只需运行:

youruser:~$ mysql

如果您想使用 root 用户连接到数据库,那么您需要访问 root 帐户或与您的用户关联的 sudo 策略才能运行 mysql 客户端。

youruser:~$ sudo mysql

显然,您可以启用对数据库根帐户的常规身份验证网络访问。这可能会导致安全问题,因此最好将其限制为本地主机:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY 'xxx' WITH GRANT OPTION;

现在,如果您可以验证登录身份,您可以从任何本地操作系统帐户登录:

youruser:~$ mysql -u root -p
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用unix_socket登录MySQL帐户 的相关文章

  • GROUP_CONCAT 逗号分隔符 - MySQL

    我有一个疑问 我在哪里使用GROUP CONCAT和自定义分隔符 因为我的结果可能包含逗号 这一切都运行良好 但它仍然以逗号分隔 所以我的输出是 Result A Result B Result C 我怎样才能做到这一点 输出是 Resul
  • Linux 是否允许从信号处理程序进行任何系统调用?

    我的理解是 一般来说 如果您从信号处理程序调用非异步信号安全函数 则行为是未定义的 但我听说 Linux 允许您安全地调用任何系统调用 这是真的 另外 SIGSEGV 处理程序的唯一可移植行为是中止或退出 但我知道如果返回 linux 实际
  • MySQL - 如何按相关性排序? INNODB表

    我在一个名为 cards 的 INNODB 表中有大约 20 000 行 所以 FULLTEXT 不是一个选项 请考虑这张表 id name description 1 John Smith Just some dude 2 Ted Joh
  • SDL/C++ OpenGL 程序,如何阻止 SDL 捕获 SIGINT

    我在用SDL http www libsdl org 用于在 Linux 上运行的 OpenGL 应用程序 我的问题是 SDL 正在捕获 SIGINT 并忽略它 这是一个痛苦 因为我正在通过屏幕会话进行开发 并且我无法使用 CTRL C 终
  • 当我执行 pip --version 时,它显示错误为 ImportError:没有名为 pyparsing 的模块

    我尝试安装 卸载py解析以及它不起作用 我被这个问题困住了 我还必须安装额外的库 这是错误消息 Traceback most recent call last File usr bin pip line 5 in
  • 我不小心锁定了 MySQL 的 root

    我在 OS X 上使用 MySQL 并使用删除了所有 root 用户DROP USER 然后我又添加了其中一些并做了GRANT ALL on to root localhost 然后在验证确实是的之后注销 我可以登录并执行一些特权操作 不幸
  • top命令的CPU使用率计算

    我正在尝试使用 GNU coreutil top 的公式来计算 CPU 使用率的百分比 但 top 正在使用一些 half total 来计算百分比 即在百分比上添加 0 5 在top的utils c中 以下行 在 3 8 beta1 中
  • 重新排列mysql中的主键

    从MySQL表中删除一些行后如何重新排列主键列值 例如 一个包含 4 行数据的表 主键值为 1 2 3 4 当删除第2行和第3行时 第4行的键值变为2 请帮助我找到解决方案 为什么要这样做 你不需要重新排列您的密钥 因为它只是记录的数字和标
  • 使用 Python for Linux 模拟按键事件

    我正在编写一个脚本来自动运行特定模型 当模型失败时 它会等待用户输入 Enter 键 我可以检测到模型何时失败 但我无法使用 python 在 Linux 上 来模拟按键事件 Windows 有 SendKeys 库来执行此操作 但我想知道
  • 用于分页的php示例脚本[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 任何人都可以建议一个好的分页 php 脚本 其中人们想要分页显示数据库中的大量项目 以下链接可以帮助您
  • 无法声明接口:资源繁忙

    我正在使用 USB4Java 低级版本 并且基本上是根据这段代码工作的here http www mets blog com java usb communication usb4java 我在 Ubuntu 中工作 遇到了有关权限的问题
  • 如何使用Conda安装MySQLdb?

    我已经阅读了有关如何安装 MySQLdb 的几种不同的解释 但我不确定哪种情况适用于我 因为我的错误消息不同 我的系统似乎找不到 MySQLdb 我安装了 pymysql 但我需要导入 MySQLdb 才能使用该库中的过程 感谢您的帮助 c
  • 在Linux上如何找到当前目录的所有直接子目录?

    在Linux上如何找到当前目录的所有直接子目录 最简单的方法是通过编写来利用 shell 通配功能echo 如果你喜欢使用ls 例如要应用格式 排序选项 请使其ls d 解释 斜杠确保仅考虑目录 而不考虑文件 Option d 列出目录本身
  • 我应该为 MySQL 使用什么 python 3 库? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 据我所知 MySQLdb 仍然没有移植到 Python 3 pypy 上似乎有另一个名为 PyMySQL
  • 如何在不需要设置 LD_LIBRARY_PATH shell 变量的情况下输入“cargo run”?

    我构建了一个 Rust 程序 通过 C 接口调用 C 函数 为了执行该程序 我必须运行 export LD LIBRARY PATH
  • 如何检查QProcess是否正确执行?

    QProcess process sdcompare QString command sdcompare QStringList args sdcompare command sdcompare diff args sdcompare lt
  • 在无文本搜索查询中使用 sphinx 与 MySQL

    我有这样的疑问 假设我有一个大表 与一个较小的用户表有关系 这个想法是在那个真正的大表中搜索大于给定日期的日期并按分数 例如大整数 排序 并同时获取相关的用户信息 此查询的结果大约每 10 分钟就会更改一次 所以 没有文本搜索 但我有一个非
  • 生成(非常)大的非重复整数序列而不进行预洗牌

    背景 我编写了一个简单的媒体客户端 服务器 我想生成一个不明显的时间值 随从客户端到服务器的每个命令一起发送 时间戳中将包含相当多的数据 纳秒分辨率 即使它不是真正准确 因为现代操作系统中计时器采样的限制 等 我想做的 在 Linux 上
  • 如何将另一列的整数值添加到日期列?

    我试图将整数添加到日期 但出现以下错误 1064 你的 SQL 语法有错误 检查与您的 MySQL 服务器版本相对应的手册 了解在第 6 行的 wp OrderDate INTERVAL WPProduct Duration DAY AS
  • $_SESSION 中保存大量信息可以吗?

    我需要存储许多数组 SESSION以防止从 MySQL 检索信息 可以吗 其中 太多 的信息有多少 SESSION还是没有 太多 谢谢 附 或者更好地使用http php net manual en book memcache php ht

随机推荐

  • 从 Android Studio 运行应用程序时,在 Gradle 任务 processManifest.doLast 中编辑 AndroidManifest.xml 无效

    我使用以下 Gradle 脚本在编译时对 AndroidManifest xml 进行一些修改 在这个例子中我想注入一个
  • TFS 团队构建日志单元测试结果

    我们正在使用 TFS 2010 Team Build 它会在构建过程中自动运行我们的单元测试 如果单击 查看日志 我可以看到运行的测试列表和每个测试结果 成功 失败 如果发生失败 我想查看测试结果输出 以便开发人员可以找出失败的原因是什么
  • 使用 extern 和 #include 头文件有什么区别?

    我开始质疑 extern 关键字的有用性 该关键字用于访问其他模块 其他文件中 中的变量 函数 当我们使用 include 预处理器导入带有变量 函数原型或函数 变量定义的头文件时 我们不是在做同样的事情吗 extern之所以需要 是因为它
  • javascript location.href onchange 事件监听器?

    我想在你离开页面时显示一条消息 不是烦人的警报 只是一些告诉你等待的html 在考虑它时我面临着某些困难 当用户按下 Stop 时 浏览器 取消导航离开 行动 我想要发送消息 离开 每当单击任何链接时 都会出现该消息 当单击的链接打开另一个
  • Windows 7 中“ruby.exe 未被识别为内部或外部命令”

    我的操作系统是Windows 7 我正要连接我的本地MySQL数据库与Heroku共享数据库 在某一时刻 我得到了libmysql dll文件丢失的错误 所以我搜索并下载了dll文件并将其保存在ruby中 bin 目录 当我再次准备连接时
  • 混合效应逻辑回归

    我正在尝试在 python 中实现混合效应逻辑回归 作为比较 我正在使用glmer函数从lme4R 中的包 我发现statsmodels模块有一个BinomialBayesMixedGLM应该能够适合这样的模型 然而 我遇到了很多问题 我找
  • QTimer线程亲和性

    在文档中它说 在多线程应用程序中 您可以使用QTimer在任何线程中 有一个事件循环 要从非 GUI 线程启动事件循环 请使用QThread exec Qt 使用定时器的线程亲和性来确定 哪个线程将发出timeout 信号 正因为如此 你
  • 位置:固定导致元素比浏览器宽

    谁能告诉我为什么position fixed会导致元素比浏览器或页面上的其他内容更宽并导致水平滚动 这是代码 超文本标记语言
  • 如果我想要像 bootstrap vue 和 vuetify 这样的 2 个 css 框架,请使用同一个项目

    我想要 2 个 CSS 框架使用我现有的 nuxtjs 项目 有人质疑为什么要使用 2 个 CSS 框架一个 vuejs 项目 回答这个问题 我想要我的网站网页版和移动版 我使用网页版是 boostrapvue 它对于网页版来说很棒 或者
  • 使用 FileManager.default.currentDirectoryPath 时,Swift 5.2 出现分段错误:11

    我有一个类似于以下内容的自定义 Swift 脚本 usr bin env xcrun sdk macosx swift import Foundation let path FileManager default currentDirect
  • 当两个路由指向同一模型时,设计资源名称出现问题

    我的 api v1 和 v2 有两条路由指向相同的 Devise 模型 路由如下 scope api do namespace v1 do devise for users controllers gt registrations gt d
  • 如何一次性设置所有formik值?

    我有一个formik用于编辑来自 API 端点的数据的表单 目前我正在重新初始化useEffect像这样挂钩 React useEffect gt initialValues first name address first name in
  • 找不到与给定名称匹配的资源:attr 'android:tabLayout'

    我想通过用我自己的样式替换样式来自定义选项卡小部件 我要更换的项目如下
  • 类型或命名空间 不存在

    好吧 我之前已经遇到过这个问题一百万次了 而且之前已经被回答过 100 万 1 次了 然而 再一次 我有 3 个项目 A B 和 C 每个项目都有一个 DLL 每个项目都是 Net 4 0 不是客户端构建 完整的4 0 项目 C 引用 A
  • 为什么 CHECKSUM_AGG() 对于完全不同的输入值返回相同的值?

    我真的不明白怎么办CHECKSUM AGG 有效 尽管我知道它是通过使用异或来构建的 这解释了为什么它会返回0当您传递相等的整数时 但是 为什么我在以下 SQL 中得到相同的聚合校验和 其中输入值是唯一的 DECLARE test1 TAB
  • 为什么 10 的幂以科学记数法打印为 5 次方?

    我想知道 10 的幂是否与控制台中科学计数法的打印相关以及如何相关 我搜索了 R 文档 但没有找到任何相关的内容 或者我真正理解的内容 首先 我的scipen and digits设置是 unlist options scipen digi
  • 寻求 2D 版本的 approxfun()

    我正在 R 中寻找 2D 版本stats approxfun 可以生成插值function来自 x y z 数据集的 f x y 我在包裹中没有找到akima或其他地方 我会尝试重新适应interp surfaceR 包中的函数fields
  • 我可以在黄瓜中使用带有示例的背景吗?

    我想通过一个示例来说明所有场景的第一步 但所有场景的第一步都是相同的 只有一个元素不同 所以我想在后台完成所有这些步骤 并想添加带有背景的示例 简而言之 假设我想导航到 facebook twitter google 和 youtube 页
  • Quartz调度器和OSGI

    我有一个 OSGI 调度程序包 其中包含 Quartz Scheduler Jar 该捆绑包仅向其他捆绑包公开一个应用程序接口 并且当注册新作业时 它将被包装到临时作业 实现 StatefulJob 中并使用调度程序进行调度 这样我就不必公
  • 使用unix_socket登录MySQL帐户

    我已经创建了一个从机器 A 到机器 B 的转发器 通过 SSH 机器 B 有一个正在运行的 MySQL 实例 其 root 帐户使用unix socket验证 User Host plugin root localhost unix soc