从mysql终端停止警告

时间:2013-11-11 06:46:22

标签: mysql linux shell warnings

当我在我的shellcript中使用以下命令来使用mysql时,

mysql -uUserName -pPassWord DBName

我收到以下警告

Warning: Using a password on the command line interface can be insecure.

我的shellcript在循环中运行此命令以在我的表中插入一些数据,因此它在屏幕上连续发出警告,这使得输出完全笨拙,所以我该怎么做才能停止从mysql打印此警告

3 个答案:

答案 0 :(得分:4)

如果您的MySQL客户端/服务器版本是5.6.x,则可以使用 mysql_config_editor 工具来避免警告消息:

mysql_config_editor set --login-path=local --host=localhost --user=UserName --password

然后您可以在shell脚本中使用:

mysql --login-path=local DBName

而不是:

mysql -uUserName -pPassWord DBName

答案 1 :(得分:2)

您可以将mysql连接信息放在~/.my.cnf中,如下所示:

[client]
database=dbsite
user=dbuser
password=dbpass
host=dbhost

然后,您可以在没有任何参数的情况下致电mysql,它会使用~/.my.cnf中的用户名,密码和所有其他详细信息。

但是,请对此文件使用严格权限:

chmod 0600 ~/.my.cnf

如果您不想污染~/.my.cnf文件,可以在其他地方创建文件,例如/path/to/my.cnf.dbname,然后像这样调用mysql

mysql --defaults-file=/path/to/my.cnf.dbname

再次确保为此文件设置严格权限:

chmod 0600 /path/to/my.cnf.dbname

<强>更新

常见的陷阱是错误地设置host。此设置必须与用户mysql.user表中的设置相匹配。您可以通过以数据库管理员身份运行此查询来确认您的用户帐户:

select Host, User from mysql.user;

或者,您可以找到服务器配置文件中使用的主机名,例如:

grep -r host /etc/mysql

但是,正确的路径取决于您的系统。 (这是来自标准的Debian安装。)

答案 2 :(得分:-1)

mysql -u <UserName> -p <PassWord> then press enter.

Note: if a password set then only provide the password otherwise leave it blank.

And then run a command "mysql> use <databasename>;