Я пытаюсь запустить простую репликацию MySQL master-slave, но при использовании LOAD DATA INFILE у меня возникают странные ошибки:
110908 23:59:42 [ERROR] Slave SQL: Error 'Unknown column 'N°_Site' in 'field list'' on query. Default database: 'b4_sites'. Query: 'LOAD DATA INFILE '/tmp/SQL_LOAD-116-4-6441.data' IGNORE INTO TABLE `cellule_1` FIELDS TERMINATED BY ';' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' IGNORE 1 LINES (`Region`, `V2G3G`, `Lac`, `CI`, `bsc_rnc`, `N°_Site`, `Constructeur`)', Error_code: 1054
110908 23:59:42 [Warning] Slave: Unknown column 'N°_Site' in 'field list' Error_code: 1054
110908 23:59:42 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'mysql-bin.000002' position 68303896
У нас есть Сервер Ubuntu 10.04 LTS работает как на ведущем, так и на ведомом. Идентичные версии MySQL MySQL-сервер-ядро-5.1 - 5.1.41-3ubuntu12.10 . Почти идентичные конфигурации MySQL (которые я могу опубликовать при необходимости) без ничего особенного.
Я вижу, что в имени одного из полей таблицы есть специальный символ, который явно вызывает ошибку, но странно то, что запрос выполняется без ошибок на мастере ...
Наборы символов на обоих серверах - master:
mysql> show variables like "char%";
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
раб:
mysql> show variables like "char%";
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
Любая помощь приветствуется, заранее спасибо
Мы нашли решение:
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
default-character-set=UTF8
...
, по мастерам. Просто клиентский раздел ...
Или:
mysql> SET NAMES UTF8;
Итак, только названия полей находятся в UTF-8.