2016-04-02 8 views
2

ジオノームデータセットをロードする際に問題が発生しています。 HERESに私のプロセス:最初のmysqlにgeonames.orgデータセットをロードするには

私は私のデータベースGEONAMES

を作成し、その後、私は私のテーブルを作成します。次の

CREATE TABLE `geoname` (
`geonameid` int(11) NOT NULL, 
`name` varchar(200) DEFAULT NULL, 
`asciiname` varchar(200) DEFAULT NULL, 
`alternatenames` varchar(4000) DEFAULT NULL, 
`latitude` decimal(10,7) DEFAULT NULL, 
`longitude` decimal(10,7) DEFAULT NULL, 
`fclass` char(1) DEFAULT NULL, 
`fcode` varchar(10) DEFAULT NULL, 
`country` varchar(2) DEFAULT NULL, 
`cc2` varchar(60) DEFAULT NULL, 
`admin1` varchar(20) DEFAULT NULL, 
`admin2` varchar(80) DEFAULT NULL, 
`admin3` varchar(20) DEFAULT NULL, 
`admin4` varchar(20) DEFAULT NULL, 
`population` int(11) DEFAULT NULL, 
`elevation` int(11) DEFAULT NULL, 
`gtopo30` int(11) DEFAULT NULL, 
`timezone` varchar(40) DEFAULT NULL, 
`moddate` date DEFAULT NULL, 
PRIMARY KEY (`geonameid`), 
KEY `name` (`name`), 
KEY `asciiname` (`asciiname`), 
KEY `latitude` (`latitude`), 
KEY `longitude` (`longitude`), 
KEY `fclass` (`fclass`), 
KEY `fcode` (`fcode`), 
KEY `country` (`country`), 
KEY `cc2` (`cc2`), 
KEY `admin1` (`admin1`), 
KEY `population` (`population`), 
KEY `elevation` (`elevation`), 
KEY `timezone` (`timezone`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_unicode_ci; 

は私の問題であり、私はデータにGETをロードしようとしている。

最後のエラーメッセージ

無効utf8文字列: '' Afikanisitani、「Apekanikana、Aプー漢(アフガニスタンn)は、AのデータをロードするためのPHU漢 "

HERESに私のクエリ:

LOAD DATA LOCAL INFILE 'allCountries.txt' 
INTO TABLE geoname 
CHARACTER SET 'UTF8' 
(geonameid, name, asciiname, alternatenames, latitude, longitude, fclass,  fcode, country, cc2, admin1, admin2, admin3, admin4, population, elevation, gtopo30, timezone, moddate); 

私は続編プロコマンドラインで私のクエリを実行していますよ。

+0

データがUTF8であり、テーブルがUTF8用に正しく設定されていると仮定すると、問題はクライアント(sequel pro)の可能性が最も高いです。それはutf8を扱うように設定されていますか、それともラテン文字かASCIIかUTF16か他の何か奇妙なものにデフォルト設定されていますか? – JNevill

+0

@JNevill - 私は同じ問題があります。私はSequel Proを使用しないで、私は今日まで働いていたUbuntuの端末でMySQLコマンドを実行します。他のアイデア? – TomDogg

答えて

1

私はthe same error on MySQL 5.7.13なっていた - allCountries.txtファイルのインポートはwhat exactly changed between MySQL 5.6 and 5.7わからない

のMySQL 5.6で正常に動作するように見えたが、それは5.7

にデフォルト character_setcollationとは何かを持っているので、変でした this Q&Aに基づいて

私はその後、terminaでのMySQLに問題なくallCountries.txtファイルをロードするために

ログインを私を有効にutf8mb4にデフォルトの文字セットを更新mysql -u root -pとLと、次のクエリを実行します。
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';

デフォルトのMySQL 5.7.13応答はのように見えた:(OS X上での作業)

+--------------------------+-------------------+ 
| Variable_name   | Value    | 
+--------------------------+-------------------+ 
| character_set_client  | utf8    | 
| character_set_connection | utf8    | 
| character_set_database | latin1   | 
| character_set_filesystem | binary   | 
| character_set_results | utf8    | 
| character_set_server  | latin1   | 
| character_set_system  | utf8    | 
| collation_connection  | utf8_general_ci | 
| collation_database  | latin1_swedish_ci | 
| collation_server   | latin1_swedish_ci | 
+--------------------------+-------------------+ 

私はその後、/etc/my.cnf
my.cnfファイルを追加する必要が - あなたはそれをコピーすることができます。
sudo cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
- 01場合(一般的な問題を_mysqlmy.cnfを割り当てるか、それを読み取ることができません。ファイルが存在するが、rootが所有またはあまりにも寛容な権限を持っているされてのいずれか)
sudo chown _mysql /etc/my.cnf
- 関連セクションに(以下含まれるように設定ファイルを更新する - 彼らはそこにいないのであれば、単にそれらを追加する)

[client] 
default-character-set = utf8mb4 
[mysqld] 
character-set-server = utf8mb4 
collation-server = utf8mb4_unicode_ci 
[mysql] 
default-character-set = utf8mb4 

- 再起動のmysql(以下のコマンドは、OS Xのためのものです):

sudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist 
sudo launchctl load -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist 

- MySQLで同じSHOW VARIABLEコマンドを実行し、結果を

です
+--------------------------+--------------------+ 
| Variable_name   | Value    | 
+--------------------------+--------------------+ 
| character_set_client  | utf8    | 
| character_set_connection | utf8    | 
| character_set_database | utf8mb4   | 
| character_set_filesystem | binary    | 
| character_set_results | utf8    | 
| character_set_server  | utf8mb4   | 
| character_set_system  | utf8    | 
| collation_connection  | utf8_general_ci | 
| collation_database  | utf8mb4_unicode_ci | 
| collation_server   | utf8mb4_unicode_ci | 
+--------------------------+--------------------+ 

... allCountries.txtファイルロードが正しく機能するはずです。

関連する問題