我有一个SQL转储,我想导入它。首先,我在终端尝试了这个:
mysql -u root -ppass
create database db_name character set utf8 collate utf8_general_ci;
mysql -u root -ppass db_name < dump.sql
我收到了错误:
ERROR 1253 (42000) at line 23: COLLATION 'utf8_unicode_ci' is not valid for CHARACTER SET 'latin1'
所以,我想这意味着我尝试导入的转储在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'
我猜数据库转储文件已损坏。它的字符集或编码不正确我猜。或者也许我做错了什么。
我该怎么做才能导入这个数据库?非常感谢你。
答案 0 :(得分:0)
您的命令是正确的,但您必须更改MySQL设置以避免错误:
编辑此文件:
sudo nano -c /etc/mysql/my.cnf
添加以下字符设置:
character-set-server=utf8
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
init_connect='SET collation_connection = utf8_unicode_ci'
skip-character-set-client-handshake
最后,重启MySQL守护进程。