ロードJSONは値防ぎますjsonデータ。最後の列タイプがJSONであることmysqlimportは問題は「設定@@ =バイナリcharacter_set_database」私は、MySQL 5.7はJSONデータ型のサポートを追加したとして、今、私は行を含むとmysqlimportはを使用しようとしている、長い時間のために問題なくmysqlimportはを使用している
column_A_value,column_B_value,[{"x":20,"y":"some name"}]
注意:ここ
はmysqlimportはを使用してインポートされたCSVファイルの行の例です。以下のようmysqlimportはを使用している場合今:
mysqlimport -u user -ppass -h localhost --columns='col_A,col_B,col_C' --local --fields-terminated-by=',' some_db /path/to/products.txt
私は、次のエラーを得た:Cannot create a JSON value from a string with CHARACTER SET 'binary'., when using table: products
は、しかし、生成LOAD DATA IN FILE
の代わりに、mysqlimportは問題なく働いたを使用して!私はmysqlログを開いて、mysqlimportを実行したときに生成されたLOAD DATA IN FILEコマンドをチェックし、コピーして貼り付けました。問題なく動作しました!私は次のようなものを走らせた:
LOAD DATA LOCAL INFILE '/path/to/products.txt'
INTO TABLE products
そして、それは働いた!その行が問題の原因であるので、ログに、mysqlimportはこの行を実行するときにも生成されたことを
あるQuery /*!40101 set @@character_set_database=binary */
唯一の違いは、その後FILEコマンドでLOAD DATAは、生成されました。
は、とにかく、私は
mysqlimport -u user -ppass -h localhost --columns='col_A,col_B,col_C' --local --fields-terminated-by=',' --default-character-set=utf8 some_db /path/to/products.txt
、UTF8に設定された文字を設定しようとしたが、無駄に、同じエラーが起こりました。
だから、この文字セットの問題を解決するためにしてくださいどのように任意の手掛かり?
どれも私のために働いていません。 MYSQLのバージョン5以降では、デフォルトの文字セットを使用しないように異なる値を使用する必要があることに注意してください。ここでは例:http://outofcontrol.ca/blog/comments/change-mysql-5.5-default-character-set-to-utf8 –
'働くことmysql'should使用。 'my.cnf'に関しては、' init-connect'と 'default-character-set'はもはや' [mysqld] 'セクションに属していないようです。 –