最新消息:

mysqldump[Warning] Using a password on the command line interface can be insecure

gtocms eben 711浏览 0评论

首先我要说的是这玩意是个警告,你不管也问题不大,好了可以撤退了

今天写个脚本的时候发现报了这个警告然后就没反应,一直以为是报错了,实际上是因为mysqldump这个命令执行时间有点长(和你导出的数据量有关系);

下边给出这个脚本用于不同数据库间同步数据

@ECHO OFF

@REM 远程数据库密码
set remoteDbPwd=123
@REM 本机数据库密码
set localDbPwd=123

@ECHO ON
REM 源
set sourceDatabase=db1

REM 目标
set targetDatabase=db2

set sourceIp=127.0.0.1

@ECHO OFF
echo begin dump...

mysqldump --opt %sourceDatabase% -h %sourceIp% -uroot -p%remoteDbPwd% > config.sql

echo end dump...

echo insert to:%targetDatabase...
mysql -uroot -p%localDbPwd% %targetDatabase% < config.sql
echo success...

del config.sql /s /q

pause
exit

解决方法

方法一:修改my.cnf配置文件

编辑/etc/my.cnf配置文件

[root@localhost local]# vi /etc/my.cnf

在配置文件中添加如下内容

[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set = utf8mb4
host = 主机ip        
user = 数据库用户名
password = '数据库密码'

使用命令导入导出(指定加载配置文件)

#导出数据库
mysqldump --defaults-extra-file=/etc/my.cnf 数据库名称 > 数据库名称_$(date +%Y%m%d_%H%M%S).sql
#导入数据库
mysql --defaults-extra-file=/etc/my.cnf 数据库名称 < 数据库名称_$(date +%Y%m%d_%H%M%S).sql

方法二:直接在linux环境中添加mysql环境

编辑/etc/profile配置文件

[root@localhost local]# vi /etc/profile

在最后面添加如下内容,保存并退出

export MYSQL_PWD=数据库密码

使配置生效

[root@localhost local]# source /etc/profile

使用mysqldump命令备份数据库的时候就可以省略-p密码参数,执行脚本就不会报错了

# mysqldump -h主机名 -u用户名  数据库名称 > /usr/local/dbbackup/数据库名称_$(date +%Y%m%d_%H%M%S).sql

转载请注明:落伍老站长 » mysqldump[Warning] Using a password on the command line interface can be insecure

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址