如何在没有用户名和密码的情况下登录数据库?

如何在没有用户名和密码的情况下登录数据库?

我想通过从 UNIX 脚本运行 SQL 文件来登录数据库,而无需提供用户名和密码(以 root 身份)。有什么命令可以做到这一点?

答案1

您可以将用户名和密码存储在 ~/.my.cnf 中

[mysql]
user=foo
password=bar

但此文件未加密,因此请小心。

答案2

许多客户端软件(包括 mysql)都可以从命令行获取密码。尝试

mysql -u root -pROOT_PASSWORD DATABASE_NAME

其中 ROOT_PASSWORD 是 mysql root 账户的密码。您也可以使用证书进行登录。

由于存在一些混淆,至少最新版本的 mysql 会从进程列表中屏蔽您的密码。您可以通过运行上述命令然后在另一个终端中检查这一点

ps auxw | grep mysql

如果你看到类似

mysql -u 根目录-px xxxxx

-px xxxxx这到底是什么,不是您的密码),那么您的密码在进程列表中是不可见的。


安全注意事项:

  • 正如@Lekensteyn 在评论中提到的,请注意,您运行的命令将保存到历史文件中(只有用户和 root 可读)。您可以通过取消设置HISTFILE变量来防止这种情况。
  • 您的脚本应该受到正确权限的保护(例如 700,即所有者拥有所有权限,而其他人则没有任何权限)。

相关内容