我遇到了我认为非常容易解决的问题,我只是出于可能的想法。
我有一个全新的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文件并访问数据库。
答案 0 :(得分:1)
事实证明问题出在Sqitch和我的配置上。 Sqitch是一个Perl应用程序,需要perl模块MySQL::Config才能读取my.cnf
文件并访问数据库。
答案 1 :(得分:0)
如果您使用-v
获取MySQL版本,请回答: mysql -V
-v用于详细输出。
有关更多详细信息,请参阅此主题。 "mysql -v" command line error(linux/ubuntu)
答案 2 :(得分:0)
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还是来自主机名,都可以登录。