Это старая версия документа.


Нетривиальный способ выгрузки mysql запроса в внешний файл с помощью утилит isql и script.

Зачем оно может быть нужно

При работе с базой данный mysql, расположенной на серевере, зачастую возникает необходимость выгрузки mysql запроса во внешний файл. Эту задачу, также, просто решить с помощью phpmyadmin, если не одно «но»: кодировка. Если база создавалась без учёта правильной кодировки то кириллические символы при выводе результата запроса могут выглядеть примерно так: ЗАО МАРЭМ+. В ubuntu 10.04, проблема с кодировкой решалась, настройкой odbc и подключением к базе посредством ООо-base от sun. Но на 12.04 с глубоко «зашитым» LibreOffice подключение через odbc не привела к желаемым результатам, вывод запроса оказался нечитаемым. Как временное решение проблемы можно предложить нижеследующий способ.

Настройка odbc в ubuntu-12.04

В начале необходимо установить в систему пакеты odbc (open data base connect) драйвера:

 sudo apt-get install unixodbc libmyodbc 

имена файлов настроек odbc можно увидеть введя в терминале:

 odbcinst -j 

вывод в 12.04 будет примерно таким:

 odbcinst -j
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

в файле /etc/odbcinst.ini необходимо указать файлы драйвера в системе:

 sudo gedit /etc/odbcinst.ini 

в редакторе прописать:

[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 

Сервер и базу данных для подключения необходимо задавать либо в целом для системы в файле /etc/odbc.ini либо для текущего пользователя в файле /home/user/.odbc.ini (или ~/.odbc.ini). Пользовательский файл ~/.odbc.ini может выглядеть следующим образом:

 [q_db]
ReadOnly=yes
Driver= MySQL
Server=127.0.0.1
Port=7777
USER=q_user
PASSWORD=qu_password
Database=q_db

Ссылки