Основы программирования в Linux
Основы программирования в Linux читать книгу онлайн
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
Рис. 8.6
Если вы хотите управлять сервером MySQL из программы-клиента в ОС Windows, можно загрузить Windows-версию MySQL Administrator из раздела Web-сайта MySQL, посвященного средствам GUI. Когда писалась эта книга, в загрузку были включены администратор, обозреватель запросов и утилита переноса базы данных. На рис. 8.7 показан экран состояния, как видите, он почти идентичен версии Linux,
Напоминаем, что если вы до сих пор следовали инструкциям, то защитили свой сервер MySQL так, что пользователь root может подключиться к нему только с локальной машины и ни с какой другой машины в сети.
После запуска MySQL Administrator вы сможете провести наблюдения при разной настройке и отслеживаемых параметрах. Это очень легкое в использовании средство, но у нас нет возможности в этой единственной главе вдаваться в подробности.
Рис. 8.7
Доступ к данным MySQL из программ на С
Теперь, когда основы СУРБД MySQL остались в стороне, давайте рассмотрим, как, не применяя графические средства или программу-клиент mysql, получить доступ к СУРБД MySQL из вашего приложения.
К MySQL можно получить доступ из программ на разных языках, включая следующие:
□ С;
□ Eiffel;
□ С++;
□ Tcl;
□ Java;
□ Ruby;
□ Perl;
□ Python;
□ PHP.
Есть и драйвер ODBC для доступа к MySQL из приложений ОС Windows, таких как Access. Существует даже драйвер ODBC для ОС Linux, но в его применении мало смысла.
В этой главе мы ограничились интерфейсом языка С, потому что в первую очередь этому языку программирования посвящена книга и потому что одни и те же библиотеки обеспечивают подключение из ряда других языков.
Подпрограммы подключения
Подключение к базе данных MySQL из программы на языке С состоит из двух шагов:
□ инициализации структуры идентификации подключения или дескриптора подключения;
□ выполнения физического подключения.
Сначала примените
mysql_init
<b>#include <mysql.h></b>
<b>MYSQL *mysql_init(MYSQL*);</b>
Обычно в подпрограмму передается
NULL
NULL
К этому моменту вы просто выделили память и инициализировали структуру дескриптора. Но вы еще должны предложить параметры подключения с помощью подпрограммы
mysql_real_connect
<b>MYSQL *mysql_real_connect(MYSQL *connection, </b>
<b> const char *server host, const char *sql_user_name,</b>
<b> const char *sql_password, const char *db_name,</b>
<b> unsigned int port_number, const char *unix_socket_name,</b>
<b> unsigned int<b> flags)</b>;</b>
Указатель подключения должен указывать на структуру дескриптора, уже инициализированную подпрограммой
mysql_init
server_host
localhost
Параметры
sql_user_name
sql_password
NULL
NULL
Параметры
port_number
unix_socket_name
NULL
И наконец, параметр
flags
OR
Если подключиться невозможно, возвращается
NULL
mysql_error
Когда вы прекращаете использовать подключение, обычно при завершении программы, вызовите подпрограмму
mysql_close
<b>void mysql_close(MYSQL * connection);</b>
Эта подпрограмма разорвет соединение с сервером. Если подключение устанавливалось с помощью
mysql_init
Подпрограмма
mysql_options
mysql_init
mysql_real_connect
<b>int mysql_options(MYSQL* connection, enum option_to_set, const char *argument);</b>
Поскольку при каждом вызове
mysql_options
mysql_init
mysql_real_connect
char
const char*
Таблица 8.11
Enum | Действительный тип аргумента | Описание |
---|---|---|
MYSQL_ОРТ_CONNECT_TIMEOUT | const unsigned int* | Количество секунд ожидания перед закрытием подключения из-за простоя |
MYSQL_ОРТ_COMPRESS | Нет, используйте NULL | Применять сжатие при сетевом подключении |
MYSQL_INIT_COMMAND | const char* | Команда, отправляемая при каждом установлении подключения |