这几天公司的一个网站交易了,昨天客户让给它数据库作一下备份,本想用mysqldump就完事了,没想到赶上一些问题,如下记录了遇到的问题和解决方法。html
在linux 命令行下执行mysql
mysqldump -h127.0.0.1 -uroot -p密码 数据库 > /data/backup/xxx.sql
结果报错:linux
Warning: Using a password on the command line interface can be insecure.
缘由是mysql5.6及以上版本不建议在命令行中输入密码? 那怎么解决呢? 百度来的方法说 修改mysql配置文件my.cnf添加 sql
重启mysql,而后执行数据库
mysqldump --defaults-extra-file=/etc/my.cnf database > database.sql
没想到又报错了0.0。api
Getting mysqldump: got error: 1045: access denied for user 'dev'@'localhost' (using password: YES) when deploying from capistrano task
后来在 stackoverflow 网站上找到一篇相关文章,给出说法是密码中若是有特殊字符须要加反斜杠,但我试一下并无做用(有待继续验证)。 那怎么办? 只能跳过帐号密码验证了。打开my.cnf 在[mysqld]这个条目下加入skip-grant-tables ,重启mysql,再执行网站
mysqldump --defaults-extra-file=/etc/my.cnf database > database.sql
能够导出来。命令行
导出完毕后别忘了去掉my.cnf 中的skip-grant-tables,并重启mysqlcode
参考网站:htm