在对安全性要求不高的测试或开发环境中,每次登录MySQL数据库都需输入密码,可能会有点麻烦。在本文中,我们将探讨五种在不输入密码的情况下登录MySQL的方法,简化您的开发和测试任务。
1.使用环境变量
使用环境变量 MYSQL_PWD 指定连接到 mysqld 时的默认密码。下面的例子是使用 MYSQL_PWD 在不提供密码的情况下登录MySQL:
$ export MYSQL_PWD=your_password
$ mysql -uroot
将 your_password 替换为您的实际密码。
关于号主,姚远:
- Oracle ACE(Oracle和MySQL数据库方向)
- 华为云最有价值专家
- 《MySQL 8.0运维与优化》的作者
- 拥有 Oracle 10g、12c和19c OCM等数十项数据库认证
- 曾任IBM公司数据库部门经理
- 20+年DBA经验,服务2万+客户
- 精通C和Java,发明两项计算机专利
2.使用配置文件
更新MySQL配置文件如下:
[client]
user=root
password=your_password
保存文件。将 your_password 替换为您的实际密码。然后您可以无需密码登录:
$ mysql
3.使用 mysql_config_editor
使用 mysql_config_editor 保存登录凭据:
$ mysql_config_editor set --login-path=yao --user=root --password
在提示时输入密码。然后您可以使用保存的凭据登录:
$ mysql --login-path=yao
4.使用 skip-grant-tables 启动MySQL
使用 skip-grant-tables 选项启动MySQL:
$ mysqld --skip-grant-tables --user=mysql &
然后您可以无需密码登录MySQL,或者无需提供正确的密码:
$ mysql -uroot -pwrongpassword
5.使用 auth_socket 插件
auth_socket 认证插件用于认证通过Unix套接字文件从localhost连接到MySQL服务器的客户端。该方法非常适合需要严格限制访问权限的服务器管理用户帐户。
在MySQL中启用 auth_socket 插件:
mysql> INSTALL PLUGIN auth_socket SONAME 'auth_socket.so';
创建一个使用 auth_socket 插件的用户:
mysql> CREATE USER 'yao'@'localhost' IDENTIFIED WITH auth_socket;
用Linux用户身份验证无需密码登录MySQL:
$ sudo mysql -uyao
如果本地主机上的用户具有Linux登录名 yao,并且使用 -uyao 选项调用套接字文件连接到MySQL,使用 auth_socket 验证插件可以通过对客户端的验证。
这些方法可以简化您的开发和测试工作流程,无需每次登录MySQL时输入密码。但是,请务必仅在安全环境中使用它们。