【问题标题】:MySQL User Permission Errors using Sqitch on Ubtunu在 Ubuntu 上使用 Switch 的 MySQL 用户权限错误
【发布时间】:2015-09-17 00:37:50
【问题描述】:

我遇到了一个我认为很容易解决的问题,我只是没有可能的想法。

我有一个全新的 Ubuntu 14.04 x64 服务器。我刚刚安装了 MySQL。不是 Apache、php 或 phpMyAdmin,只是普通的 MySQL。

我已经通过mysql_secure_installation 为我的root 用户创建了一个密码。

然后我将我的 root 密码放在 /etc/mysql/my.cnf 文件的 [client] 部分下。

我可以运行 mysql -u root 并正常访问 MySQL 控制台。

但是,如果我运行 sqitch deploy,我会得到:
Access denied for user 'root'@'localhost' (using password: NO)

Sqitch 指向:

[target "database name_v1"]
uri = db:mysql://root@/databasename_v1
[engine "mysql"]
target = db:mysql://root@/databasename_v1

编辑

原来问题出在 Sqitch 和我的配置上。 Sqitch 是一个 Perl 应用程序,需要 perl 模块 MySQL Config 才能读取 my.cnf 文件并访问数据库。

【问题讨论】:

  • 其中一个通过套接字连接您,而另一个通过 tcp 端口连接。如果您指定-S /path/to/socket-h hostname -P portnumber,无论哪个有效,在mysql -u rootmysql -v 上都使用它,您将获得一致的连接。

标签: mysql sqitch


【解决方案1】:

原来问题出在 Sqitch 和我的配置上。 Sqitch 是一个 Perl 应用程序,需要 perl 模块 MySQL::Config 才能读取 my.cnf 文件并访问数据库。

【讨论】:

  • 如果它解决了您的问题,请考虑接受此答案!
【解决方案2】:

如果您使用-v 获取 MySQL 版本,这是您的答案:mysql -V
-v 用于详细输出。

请参阅此主题以获取更多详细信息。 "mysql -v" command line error(linux/ubuntu)

【讨论】:

  • 没有。这与以往无关。为什么我可以很好地登录到控制台,但是当运行其他命令时它拒绝我访问并且没有使用 my.cnf 中设置的密码,当它让我进入控制台时这显然是有效的。
  • 那我没有太多线索。我在使用 .my.cnf 时从来没有遇到过任何问题。到目前为止,我看到的唯一区别是我使用 [mysql] 而不是 [client],但我怀疑这可能是原因,因为 [client] 似乎更宽容。 (参见stackoverflow.com/questions/15453555/…)我假设您在完全相同的条件下运行这两个命令?在那种情况下,我真的不知道atm,对不起:|
  • @Balmipour - 很明显 OP 有正确的用户,否则错误消息将不会发给用户 root@localhost
  • @user1302023 我根本不知道sqitch,但对我来说,问题似乎出在那边。如果您在 .my.cnf 中指定使用用户“foobar”而不是 root 怎么办?我敢打赌你仍然会得到“用户'root'的访问被拒绝”。顺便说一句,您尝试过 alvits 的建议吗?对我来说,全新安装似乎不太可能,但在这种情况下,检查不会有任何伤害。如有必要,还可以尝试评论 bind-address = 127.0.0.1。在奇怪的配置上,我已经遇到了使用“远程”连接的本地服务问题。
  • @balmipour 现在更新我的问题。这是一个问题。 Sqitch 是一个 PERL 应用程序,它需要安装一个名为 MySQL Config 的 perl 模块,以允许它读取 my.cnf 文件。
【解决方案3】:

mysql中有多个root用户。它们的格式为user@remote

您可以通过运行查询select Host, User, Password from mysql.user where User="root";来检查是否为所有这些设置了用户密码

输出应该显示如下:

+--------------+----------+-------------------------------------------+
| Host         | User     | Password                                  |
+--------------+----------+-------------------------------------------+
| localhost    | root     | *XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
| testvm       | root     | *XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
| 127.0.0.1    | root     | *XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |

如果密码为空,通过mysqladmin设置。

从这里开始,您与 mysql 的连接,无论是来自 localhost 还是来自主机名,都将被允许登录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-24
    • 1970-01-01
    • 1970-01-01
    • 2013-11-06
    • 2011-12-28
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多