MySQL 在 Ubuntu 上使用 Switch 时出现用户权限错误

MySQL User Permission Errors using Sqitch on Ubtunu

我正在 运行我认为这是一个很容易解决的问题,我只是没有可能的想法。

我有一个全新的 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 文件和访问数据库。

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

有关详细信息,请参阅此线程。 "mysql -v" command line error(linux/ubuntu)

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 的连接,无论是来自本地主机还是来自主机名,都将被允许登录。

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