如何创建没有密码的MySQL用户 - 远程登录所需 - 用于bash插入脚本?

Chi*_*ayu 16 mysql bash

我的要求是创建一个用户进行远程登录但没有密码.在我的远程空间,我使用bash脚本进行插入,类似于:

for i in {1..5000}; do
  mysql -h 11.40.3.169 -uUser -pPass -DDatabaseName <<<
    "insert into DatabaseTableName values('$i','dummy_$i');" &
  echo -n "$i  "
  sleep 1
  date
done
Run Code Online (Sandbox Code Playgroud)

问题是每个插入花费大约4秒,除了每次插入的身份验证之外,我无法确定问题.所以,如果我可以在MySQL中创建一个用户,只需要很少的身份验证......就像:

# I'm trying to remove this password
GRANT ALL PRIVILEGES TO 'user'@'%' IDENTIFIED BY 'password';
Run Code Online (Sandbox Code Playgroud)

......你能提出什么建议.

Qua*_*noi 27

只需删除IDENTIFIED BY部分:

GRANT ALL PRIVILEGES ON *.* TO 'user'@'%'
Run Code Online (Sandbox Code Playgroud)

请注意,从没有密码的任何地方进行远程登录是一件非常不安全的事情.您最好限制IP此用户的允许范围:

GRANT ALL PRIVILEGES  ON *.* TO 'user'@'allowed_remote_machine'
Run Code Online (Sandbox Code Playgroud)

  • 感谢快速回复Quassnoi,但你说的2个命令给出了错误并且是不允许的,至少在MySQL 5.1上[ERROR 1133(42000):在用户表中找不到任何匹配的行] ..我之前尝试过它们,并在阅读完答案后再次尝试了...请帮我解决这个问题......并感谢不安全的问题建议. (2认同)
  • @Chirayu:您打开了“NO_AUTO_CREATE_USER”。首先发出`CREATE USER 'user'@'allowed_remote_machine'`。另外,请注意@cbz 的建议:这可能是您想要的,而不是创建没有密码的用户。 (2认同)

cbz*_*cbz 27

您可以通过创建具有密码的用户,然后将.my.cnf文件放在运行包含以下内容的bash脚本的帐户的主目录中来执行此操作:

[mysql]
user=user
password=pass
[mysqladmin]
user=user
password=pass
Run Code Online (Sandbox Code Playgroud)

这可能比创建没有密码的用户更好.