Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Запрос mysql и кодировка файла вывода  (Прочитано 3240 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн pulchra

  • Автор темы
  • Участник
  • *
  • Сообщений: 155
    • Просмотр профиля
Делаю запрос mysql в таком виде: SELECT task_name, task_end_date, task_description, project_name, contact_display_name FROM tasks, user_tasks, projects, contacts, users WHERE user_tasks.task_id=tasks.task_id AND user_tasks.user_id="23" AND projects.project_owner=users.user_id AND users.user_id=contacts.contact_id;терминал выводит много строк, которые в окне терминала не осмотреть, но в запросе есть всё что нужно: | 39 152       | 2012-10-17 07:00:00 |                                                                                                 | АИИС ПС Тюмень500                                                            | А.В. Лукин                         |
| 26 050       | 2012-10-17 07:00:00 | NULL                                                                                            | АИИС ПС Тюмень500                                                            | А.В. Лукин                         |
| -138 800     | 2012-01-20 08:00:00 |                                                                                                 | АИИС ПС Тюмень500                                                            | А.В. Лукин                         |
| -42 446      | 2012-01-19 08:00:00 |                                                                                                 | АИИС ПС Тюмень500                                                            | А.В. Лукин                         |
| -20 910      | 2012-02-20 08:00:00 |                                                                                                 | АИИС ПС Тюмень500                                                            | А.В. Лукин                         |
| -8 291       | 2012-03-01 05:00:00 | NULL                                                                                            | АИИС ПС Тюмень500                                                            | А.В. Лукин                         |
+--------------+---------------------+-------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------+-------------------------------------------+
10092 rows in set (0.38 sec)
соответственно делаю вывод запроса во внешний файл:mysql> SELECT task_name, task_end_date, task_description, project_name, contact_display_name FROM tasks, user_tasks, projects, contacts, users WHERE user_tasks.task_id=tasks.task_id AND user_tasks.user_id="23" AND projects.project_owner=users.user_id INTO  OUTFILE '/var/lib/mysql/test.txt';, но когда открываю файл для просмотра вижу: 16 800 2012-05-09 11:00:00 8% от стоимости работ Обслуживание АИИС КУЭ ООО "ЛЕКС" К.Я. Иванов
54 000 2010-09-30 02:00:00 \N Обслуживание АИИС КУЭ ООО "ЛЕКС" К.Я. Иванов
6 000 2012-05-09 11:00:00 \N Обслуживание АИИС КУЭ ООО "ЛЕКС" К.Я. Иванов
60 000 2010-06-14 03:00:00 Обслуживание АИИС КУЭ ООО "ЛЕКС" К.Я. Иванов
216 000 2010-08-31 11:00:00 Обслуживание АИИС КУЭ ООО "ЛЕКС" К.Я. Иванов
24 000 2012-05-09 11:00:00 8% от стоимости работ Обслуживание АИИС КУЭ ООО "ЛЕКС" К.Я. Иванов
56 000 2010-06-14 03:00:00 Аванс 20% Обслуживание АИИС КУЭ ООО "ЛЕКС" К.Я. Иванов
201 600 2011-08-01 04:00:00 Обслуживание АИИС КУЭ ООО "ЛЕКС" К.Я. Иванов
22 400 2012-05-09 11:00:00 8% окончательный рассчет^C
В общем проблемы с кодировкой. Пытался экпирементировать со значениями переменной character_set_filesystem но не помогает... Вопрос: как исправить кодировку для выгружаемого текстового файла?

Оффлайн pulchra

  • Автор темы
  • Участник
  • *
  • Сообщений: 155
    • Просмотр профиля
Re: Запрос mysql и кодировка файла вывода
« Ответ #1 : 05 Марта 2012, 08:42:03 »
Один из вариантов решения проблемы:
необходимо установить соединение с БД из OOo Base посредством ОDBC, с локальной машины можно установить ssh соединение с сервером (по способу http://www.iho.ru/news/archives/2006/12/02/16_20.htm):ssh -L7777:localhost:3306 user@192.168.32.200в мастере соединения ООо Base прописать порт: 7777 , сервер: 127.0.0.1
подключиться к БД и выполнить запрос из Base, только условие запроса не отмечать ковычками, например, в терминале нужно писать: SELECT task_name FROM tasks,user_tasks WHERE user_tasks.task_id=tasks.task_id AND user_tasks.user_id="23" в Base: SELECT task_name FROM tasks,user_tasks WHERE user_tasks.task_id=tasks.task_id AND user_tasks.user_id=23 Но всё равно, есть необходимость формировать файл запроса из терминала mysql c правильной кодировкой... Подскажите куда тыкнуть.

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Запрос mysql и кодировка файла вывода
« Ответ #2 : 05 Марта 2012, 08:52:38 »
У меня такие проблемы были, когда БД создавал с кодировкой по умолчанию (шведская кодировка).
Проблему решал как-то так.
Все делал в phpmyadmin.
1.Экспортировал БД.
2.Удалил БД.
3.Создал БД с правильной кодировкой.
4.Импортировал БД.


Оффлайн MonoLife

  • Активист
  • *
  • Сообщений: 356
  • "Пилите, Шура, пилите!" ©
    • Просмотр профиля
    • Under sky of Half-Life
Re: Запрос mysql и кодировка файла вывода
« Ответ #3 : 05 Марта 2012, 09:07:04 »
перед запросом:
SET NAMES нужная_кодировка
к примеру, SET NAMES cp1251

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: Запрос mysql и кодировка файла вывода
« Ответ #4 : 05 Марта 2012, 09:29:50 »
Да, можно запастись комплектами костылей и решать проблемы их подбором.
Есть плюсы: безработица не грозит.

Оффлайн shrm

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Запрос mysql и кодировка файла вывода
« Ответ #5 : 05 Марта 2012, 17:58:08 »
можно установить кодировку по умолчанию, для этого прописать в /etc/mysql/my.cnf:
в секции [client]
default-character-set = utf8
в секции [mysqld]
default-character-set = utf8

вместо utf8 поставить любую нужную.
перезапустить mysql

 

Страница сгенерирована за 0.029 секунд. Запросов: 25.