我遇到了我认为是一个很容易解决的问题,我只是没有可能的想法。
我有一个全新的Ubuntu 14.04 x64服务器。我刚刚安装了MySQL。不是Apache, php或phpMyAdmin,只是普通的MySQL。我运行了mysql_secure_installation
并为我的root用户创建了一个密码。
然后我把我的根密码在[client]
部分下的/etc/mysql/my.cnf
文件。
我可以运行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文件并访问数据库。
问题出在Sqitch和我的配置上。Sqitch是一个Perl应用程序,需要Perl模块MySQL::Config来读取my.cnf
文件和访问数据库。
如果你正在使用-v
获取MySQL版本,这里是你的答案: mysql -V
-v用于verbose输出。
查看这个线程了解更多细节。"mysql -v"命令行错误(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的连接,无论是来自localhost,还是来自主机名,都将被允许登录。