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