如何在 CentOS 配置 MySQL 5.7 实现免密登录

登录 MySQL 作为 root 用户:

首先,你需要以 root 用户身份登录 MySQL,以便进行必要的配置更改。你可以使用以下命令登录 MySQL:

sudo mysql -u root -p

创建免密登录用户:

创建一个不需要密码的用户。假设你想为用户 your_username 设置免密码登录,执行以下 SQL 命令:

CREATE USER 'your_username'@'localhost' IDENTIFIED BY '';

授予权限:

授予该用户所有权限,并刷新权限缓存:

GRANT ALL PRIVILEGES ON *.* TO 'your_username'@'localhost';
FLUSH PRIVILEGES;

配置免密码登录:

为了实现免密码登录,你需要编辑 MySQL 的配置文件 my.cnf。通常情况下,这个文件位于 /etc/my.cnf/etc/mysql/my.cnf。你可以使用文本编辑器打开并编辑此文件:

sudo vi /etc/my.cnf

[client] 部分添加或修改如下行:

[client]
user=your_username
password=

验证免密码登录:

关闭并重新打开终端窗口,然后尝试使用下面的命令直接登录 MySQL:

mysql -A

-A 选项表示不要读取 .mylogin.cnf 文件,这样就可以直接使用配置文件中的信息进行登录。

注意事项

  • 请确保 your_username 是你之前创建的用户名。
  • 如果你使用的是 MySQL 5.7,你还需要确保用户使用的认证插件是 mysql_native_password。你可以使用以下命令来检查或设置认证插件:
SELECT User, Host, authentication_string, plugin FROM mysql.user WHERE User='your_username';

如果插件不是 mysql_native_password,你可以更新它:

ALTER USER 'your_username'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
FLUSH PRIVILEGES;