【问题标题】:Is there a way to have mysql pass root password?有没有办法让mysql通过root密码?
【发布时间】:2014-11-29 11:09:12
【问题描述】:

当我以 root(或 sudo)身份登录 Linux 时,我认为当我输入 mysql 时 MySQL 使用了 Linux 用户的当前用户名和密码,但是,当我尝试这样做时,它只会给出错误 ERROR 1045 ( 28000):用户“root”@“localhost”的访问被拒绝(使用密码:否)。我不想禁用需要密码,我只想从当前用户传递(如果未指定)(我也已经禁用了匿名用户)。

【问题讨论】:

标签: mysql linux passwords


【解决方案1】:

如果不指定用户名,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

【讨论】:

    【解决方案2】:

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

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

    // $cfg['Servers'][$i]['AllowNoPassword'] = TRUE;

    如果设置为 false,则设置为 true 并重新启动 Mysql 服务,一切顺利

    然后你就可以不用密码访问 PhpMyAdmin/MySQl 控制台了。

    【讨论】:

      【解决方案3】:

      只需在您的 .bashrc 中添加一个别名:

      alias mysql="mysql -u root -pYourPassWord"
      

      【讨论】: