通过批处理文件执行MySQL命令且不需要输入密码
我正尝试从一个Windows的批处理文件中发出MySQL命令,而不提示输入密码。如果在命令字符串中提供密码,我可以让命令工作,但出于安全原因,我不能这样做。我已经将以下内容添加到C:\ProgramData\MySQL\MySQL Server 8.0文件夹中的my.ini的 client部分。
[client]
user="user"
password="xxxxx"
但当我运行批处理文件时仍然失败,错误信息是:
ERROR 1045 (28000): Access denied for user 'user'@'localhost' (using password: NO)
我敢肯定还缺少些什么——非常感谢任何帮助。
解决方案
去掉你所使用的引号
[client]
user=user
password=xxxxx
这应该可以解决问题
另一种解决方法可以先跑这个一次
mysql_config_editor set --login-path=local --user=user --password
然后在你的 批处理文件:你可以使用
mysql --login-path=local -e "YOUR SQL HERE"
更安全,因为凭据已被加密
另外,为了让client部分工作,MySQL实际上应该读取该文件;有时Windows的匹配规则是这样的
C:\ProgramData\MySQL\MySQL Server 8.0\my.iniC:\Program Files\MySQL\MySQL Server 8.0\my.ini- 有时它不会读取MySQL文件,所以你可以使用
mysql --print-defaults
这表示正在加载哪些默认设置
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。