首先我要说的是这玩意是个警告,你不管也问题不大,好了可以撤退了
今天写个脚本的时候发现报了这个警告然后就没反应,一直以为是报错了,实际上是因为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