Mysql 导入数据库会导致字符集错误
我有一个SQL转储,我想导入它。首先,我在终端中尝试了以下方法:Mysql 导入数据库会导致字符集错误,mysql,sql,import,character-encoding,mysqldump,Mysql,Sql,Import,Character Encoding,Mysqldump,我有一个SQL转储,我想导入它。首先,我在终端中尝试了以下方法: mysql -u root -ppass create database db_name character set utf8 collate utf8_general_ci; mysql -u root -ppass db_name < dump.sql 所以,我想这意味着我试图导入的转储文件是用latin1解码的 然后,我打开SQL转储并查看它。我看到这句话: CREATE DATABASE IF NOT EXISTS
mysql -u root -ppass
create database db_name character set utf8 collate utf8_general_ci;
mysql -u root -ppass db_name < dump.sql
所以,我想这意味着我试图导入的转储文件是用latin1
解码的
然后,我打开SQL转储并查看它。我看到这句话:
CREATE DATABASE IF NOT EXISTS `db_name` DEFAULT CHARACTER SET latin1 COLLATE utf8_unicode_ci;
所以,我这样做了:
mysql -u root -ppass
create database db_name character set latin1 collate utf8_unicode_ci;
我得到了这个错误:
ERROR 1253 (42000): COLLATION 'utf8_unicode_ci' is not valid for CHARACTER SET 'latin1'
我猜数据库转储文件已损坏。我想它的字符集或编码是不对的。也许我做错了什么
要导入此数据库,我必须做什么?多谢各位 您的命令是正确的,但您必须更改MySQL设置以避免错误:
- 编辑此文件:
sudo nano-c/etc/mysql/my.cnf
- 添加以下字符设置:
字符集服务器=utf8 排序规则服务器=utf8\U unicode\U ci init connect='SET NAMES utf8' init\u connect='SET collation\u connection=utf8\u unicode\u ci' 跳过字符集客户端握手
- 最后,重新启动MySQL守护程序
sudo服务mysql restart
重新启动了我的mysql守护程序。然而,它仍然不起作用。
ERROR 1253 (42000): COLLATION 'utf8_unicode_ci' is not valid for CHARACTER SET 'latin1'