mysql数据库备份与还原,解决40101和ERROR 2049错误

此方法可解决:

*!40101 SET NAMES utf8mb4 */
错误信息:Unknown character set: 'utf8mb4'

报错ERROR 2049 (HY000): Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)

一、环境

源数据库:ubuntu16.04 LTS + mysql 5.6

目的数据库:Centos 6.5 + mysql 5.1

二、备份

语法:sudo mysqldump -h源数据库主机名 -u源数据库用户名  -p --default-character-set=utf8 数据库名 > 备份数据库名.sql

说明:参数--default-character-set=utf8是指数据库默认字符集是utf8,这是因为空间商数据库默认都是这个字符集

例:sudo mysqldump -hlocalhost -uroot -p --default-character-set=utf8 keread.com > /data/keread.sql

三、还原

语法:sudo mysql -h目的数据库主机名 -u目的数据库用户名 --default-character-set=utf8 --secure-auth=false -p 目的数据库名 < 备份数据库名.sql

说明:参数--secure-auth=false是解决“Linux主机mysql连接报错ERROR 2049 (HY000)”,由于服务器端的密码管理协议陈旧,使用的是旧有的用户密码格式存储;但是客户端升级之后采用了新的密码格式 。mysql5.6版本遇到这种不一致的情况就会拒绝连接

例:sudo mysql -hkeread.com -uqdm117974902 --default-character-set=utf8 --secure-auth=false -p qdm117974902_db < /data/keread.sql