Назад | Перейти на главную страницу

репликация MySQL master-slave со специальными символами в имени столбца?

Я пытаюсь запустить простую репликацию 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.