当我尝试从终端内的MySQL上运行以下命令时:
mysql -u $user -p$password -e "statement"
Run Code Online (Sandbox Code Playgroud)
执行按预期工作,但它总是发出警告:
警告:在命令行界面上使用密码可能不安全.
但是,我必须使用$password存储我的密码的环境变量()来执行上面的声明,因为我想在终端内的bash脚本中迭代地运行命令,我绝对不喜欢等待提示出现的想法并强迫我在一个脚本中输入50或100次密码.所以这是我的问题:
抑制警告是否可行?该命令正如我所说的那样正常工作,但当我循环并运行命令50或100次时,窗口变得非常混乱.
我是否应该遵守警告信息并且不在我的脚本中写入密码?如果是这种情况,那么每次提示迫使我这样做时,我是否必须输入密码?
跑步man mysql没有帮助,只说
--show-warnings
如果有任何声明,则会在每个声明后显示警告.此选项适用于交互式和批处理模式.
如果我没有遗漏某些东西,并且没有提及如何关闭功能.
我在OS X 10.9.1 Mavericks上,并使用自制的MySQL 5.6.
我想通过设置root密码来保护mysql.我成功重置了root密码:
MariaDB [(none)]> select Host, User, Password from mysql.user;
+-----------+------+-------------------------------------------+
| Host | User | Password |
+-----------+------+-------------------------------------------+
| localhost | root | *58319282EAB9E38D49CA25844B73DA62C80C2ABC |
+-----------+------+-------------------------------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
但是,在刷新权限后,重新启动Mysql,我仍然可以在不输入密码的情况下登录mysql(在本地主机上).
root@myhost:/# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 10.0.29-MariaDB SLE 12 SP1 package
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the …Run Code Online (Sandbox Code Playgroud)