有没有办法让mysql传递root密码?

时间:2014-10-04 17:07:17

标签: mysql linux passwords

当我以root(或sudo)身份登录Linux时,我想当我输入mysql时,MySQL使用了Linux用户的当前用户名和密码,但是,当我尝试时,它只是给出了错误ERROR 1045(28000):拒绝访问用户&root;' @' localhost' (使用密码:否)。我不想禁用需要密码,我只是希望它从当前用户传递,如果他们没有指定(我已经禁用了匿名用户)。

3 个答案:

答案 0 :(得分:3)

如果您未指定用户名,则Linux上的MySQL使用调用进程的用户名,但属于该用户的密码。

Linux上的应用程序无法使用调用者的密码,我认为这是最好的!

默认情况下,MySQL对用户和密码的内部表进行身份验证,该表与操作系统的passwd文件无关。 MySQL实例通常有一个名为“root”的用户这一事实是巧合; MySQL“root”与Linux“root”不同,它们可以(并且应该)拥有不同的密码。

如果您想避免每次都要求输入密码,则应在$HOME/.my.cnf中保存默认用户/密码:

[client]
user = scott
password = tiger

(我建议不要在这个文件中存储超级用户密码。)

在MySQL 5.6中,他们引入了一项新功能,可以更安全地存储登录凭据。见https://dev.mysql.com/doc/refman/5.6/en/mysql-config-editor.html

答案 1 :(得分:0)

打开文件/etc/phpmyadmin/config.inc.php上的AllowNoPassword选项。

编辑文件config.inc.php,搜索并取消注释此行:

// $ cfg ['服务器'] [$ i] [' AllowNoPassword'] = TRUE;

如果设置为false,则将其设置为true并重新启动Mysql服务,您就可以了

然后您可以在没有密码的情况下访问PhpMyAdmin / MySQl控制台。

答案 2 :(得分:0)

只需在.bashrc中添加别名:

alias mysql="mysql -u root -pYourPassWord"