HOW-TO:odbs mysql 12.04 выгрузка запроса Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:odbs_mysql_12.04_выгрузка_запроса [2012/06/18 11:51]
[Ссылки]
wiki:odbs_mysql_12.04_выгрузка_запроса [2012/06/26 05:56] (текущий)
[Ссылки]
Строка 5: Строка 5:
 При работе с базой данный mysql, расположенной на серевере,​ зачастую возникает необходимость выгрузки mysql запроса во внешний файл. Эту задачу,​ также, просто решить с помощью phpmyadmin, если не одно "​но":​ кодировка. Если база создавалась без учёта правильной кодировки то кириллические символы при выводе результата запроса могут выглядеть примерно так: ЗАО МАРЭМ+. В ubuntu 10.04, проблема с кодировкой решалась,​ настройкой odbc и подключением к базе посредством ООо-base от sun. Но на 12.04 с глубоко "​зашитым"​ LibreOffice подключение через odbc не привела к желаемым результатам,​ вывод запроса оказался нечитаемым. Как временное решение проблемы можно предложить нижеследующий способ. При работе с базой данный mysql, расположенной на серевере,​ зачастую возникает необходимость выгрузки mysql запроса во внешний файл. Эту задачу,​ также, просто решить с помощью phpmyadmin, если не одно "​но":​ кодировка. Если база создавалась без учёта правильной кодировки то кириллические символы при выводе результата запроса могут выглядеть примерно так: ЗАО МАРЭМ+. В ubuntu 10.04, проблема с кодировкой решалась,​ настройкой odbc и подключением к базе посредством ООо-base от sun. Но на 12.04 с глубоко "​зашитым"​ LibreOffice подключение через odbc не привела к желаемым результатам,​ вывод запроса оказался нечитаемым. Как временное решение проблемы можно предложить нижеследующий способ.
  
-==== Настройка odbc в ubuntu-12.04 ====+===== Настройка odbc в ubuntu-12.04 ====
 +В начале необходимо установить в систему пакеты odbc (open data base connect) драйвера:​ 
 + 
 +<​code>​ sudo apt-get install unixodbc libmyodbc </​code>​ 
 +имена файлов настроек odbc можно увидеть введя в терминале:​ 
 +<​code>​ odbcinst -j </​code>​ 
 +вывод в 12.04 будет примерно таким:​ 
 + 
 +<​code>​unixODBC 2.2.14 
 +DRIVERS............:​ /​etc/​odbcinst.ini 
 +SYSTEM DATA SOURCES: /​etc/​odbc.ini 
 +FILE DATA SOURCES..: /​etc/​ODBCDataSources 
 +USER DATA SOURCES..: /​home/​user/​.odbc.ini 
 +SQLULEN Size.......:​ 4 
 +SQLLEN Size........:​ 4 
 +SQLSETPOSIROW Size.: 2 
 +</​code>​ 
 + 
 +в файле /​etc/​odbcinst.ini необходимо указать файлы драйвера в системе:​ 
 +<​code>​sudo gedit /​etc/​odbcinst.ini </​code>​ 
 +в редакторе прописать:​ 
 +<​code>​[MySQL] 
 +Description ​    = ODBC for MySQL 
 +Driver ​         = /​usr/​lib/​i386-linux-gnu/​odbc/​libmyodbc.so 
 +Setup = sud/​usr/​lib/​i386-linux-gnu/​odbc/​libodbcmyS.so 
 +FileUsage ​      = 1 </​code>​ 
 + 
 +Сервер и базу данных для подключения необходимо задавать либо в целом для системы в файле /​etc/​odbc.ini либо для текущего пользователя в файле /​home/​user/​.odbc.ini (или ~/​.odbc.ini,​ для правки этого файла необходимо ввести в терминале "gedit ~/​.odbc.ini"​). Пользовательский файл ~/.odbc.ini может выглядеть следующим образом:​ 
 +<​code>​[qdb] 
 +ReadOnly=yes 
 +Driver= MySQL 
 +Server=127.0.0.1 
 +Port=7777 
 +USER=qdb_u 
 +PASSWORD=qdb_password 
 +Database=q_db 
 +</​code>​ 
 +Тут необходимо заметить,​ что к серверу с БД, я подключаюсь с локальной машиной посредством ssh, введя в терминале 
 +<​code> ​ ssh -L7777:​localhost:​3306 s_user@192.168.32.210 </​code>​ где s_user - имя пользователя на сервере,​ а 192.168.32.210 - IP сервера;​  
 + 
 +Проверить настройки подключения в БД можно набрав в терминале <​code>​isql qdb</​code>​ 
 +если всё указано правильно,​ должно вывестить следующее:​ 
 +<​code>​+---------------------------------------+ 
 +| Connected! ​                           | 
 +|                                       | 
 +| sql-statement ​                        | 
 +| help [tablename] ​                     | 
 +| quit                                  | 
 +|                                       | 
 ++---------------------------------------+ 
 +SQL>  
 +</​code>​ 
 +При помощи утилиты isql, в том числе можно вводить запросы конструкции SELECT. 
 + 
 +===== Вывод запроса SELECT во внешний файл на локальной машине ===== 
 +И так, исходные данные:​ имеется настроенное ssh подключение между локальной машиной и сервером и настроенное odbc подключение с базой данных. 
 +Подключаемся к серверу 
 +<​code>​ ssh -L7777:​localhost:​3306 s_user@192.168.32.210 </​code>​ 
 +Открываем новое окно терминала Shift+Сtrl+t,​ и вводим примерно следующее:​ 
 +<​code>​script -t /​home/​user/​имя_файла</​code>​ 
 +тут: утилита script позволяет записывать всё, что происходит в терминале,​ а /​home/​user/​имя_файла - собственно файл куда будет выводится запрос. Далее подключаемся к базе: 
 +<​code>​isql qdb</​code>​ 
 +и вставляем в терминал требуемый запрос((для удобства запрос можно предварительно записать в каком-нибудь редакторе,​ затем скопировать и вставить посредством меню мыши или комбинацией клавиш Shift+Ins)). После исполнения запроса нажимаем Ctrl+C Ctrl+D, для выхода из script. Созданный файл можно открыть в Calc, выбрав в мастере импорта требуемые разделители,​ например точку с запятой и символ "​|"​. В открытом файле остаётся только удалить несколько "​лишних"​ строк и столбцов,​ а так же десяток другой пробелов в ячейках ((это лучше сделать формулами или макросом)) и наш запрос готов к дальнейшей обработке. 
 + 
  
  
Строка 14: Строка 78:
   * [[FIXME]]   * [[FIXME]]
  
-{{tag>​odbs mysql 12.04 запросы_mysql}}+{{tag>​odbs mysql 12.04 запросы_mysql ​how-to}}