Главная » Информационные системы » Управление данными » 46. ТЕХНОЛОГИЯ РАЗРАБОТКИ КЛИЕНТСКИХ ПРИЛОЖЕНИЙ ДЛЯ СОЗДАНИЯ БАЗЫ ДАННЫХ СУБД MYSQL

46. ТЕХНОЛОГИЯ РАЗРАБОТКИ КЛИЕНТСКИХ ПРИЛОЖЕНИЙ ДЛЯ СОЗДАНИЯ БАЗЫ ДАННЫХ СУБД MYSQL

46. Технология разработки клиентских приложений для создания базы данных  СУБД  MySQL

8.4.3.171 mysql_real_connect()

MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned int client_flag)

Параметры этой функции указываются следующим образом:
  • Первым параметром должен быть указатель существующей структуры MYSQL. До вызова функции mysql_real_connect() необходимо вызвать функцию mysql_init() для инициализации данной структуры MYSQL. Вызов функции mysql_options() позволяет изменить многие опции данного соединения. See section 8.4.3.159 mysql_options().
  • host может быть как именем хоста, так и IP-адресом. Если host равен NULL или строке localhost, то подразумевается соединение с локальным хостом. Если операционная система поддерживает сокеты (Unix) или именованные каналы (Windows), то они используются вместо протокола TCP/IP для соединения с сервером.
  • Параметр user содержит имя данного пользователя MySQL. Если параметр user равен NULL, то подразумевается текущий пользователь. Под операционной системой Unix, это будет текущее имя входа в систему. Под Windows ODBC имя пользователя должно быть указано явным образом. См. раздел See section 8.3.2 Как заполнять различные поля в Администраторе ODBC.
  • Параметр passwd содержит пароль для user. Если параметр passwd равен NULL, то только записи в таблице user для пользователя, имеющего чистое (пустое) поле пароля, будут проверяться на совпадение. Это дает возможность администратору базы данных устанавливать систему прав MySQL таким образом, что пользователи получают различные права, в зависимости от того, имеют они или нет установленный пароль. Замечание: не следует пытаться шифровать пароль перед вызовом функции mysql_real_connect(); шифрование пароля производится автоматически библиотекой.
  • Параметр db представляет собой имя базы данных. Если параметр db не равен NULL, то данное соединение установит эту величину в качестве базы данных по умолчанию.
  • Если параметр port не равен 0, то данная величина будет использована в качестве порта для соединения TCP/IP. Следует учитывать, что тип соединения определяется параметром host.
  • Если параметр unix_socket не равен NULL, то данная строка указывает сокет или именованный канал, который следует использовать. Следует учитывать, что тип соединения определяется параметром host.

int mysql_create_db(MYSQL *mysql, const char *db)

Данная функция не рекомендуется. Вместо нее предпочтительно использовать функцию mysql_query() для выполнения SQL-команды CREATE DATABASE.

8.4.3.25 Возвращаемые значения

Нуль, если база данных создана успешно. Ненулевая величина, если произошла ошибка.

8.4.3.26 Ошибки

CR_COMMANDS_OUT_OF_SYNC
Команды были выполнены в ненадлежащем порядке.
CR_SERVER_GONE_ERROR
Сервер MySQL неожиданно завершил работу.
CR_SERVER_LOST
Соединение с сервером прервалось в процессе данного запроса.
CR_UNKNOWN_ERROR
Произошла неизвестная ошибка.

8.4.3.27 Пример

if(mysql_create_db(&mysql, my_database))
{
fprintf(stderr, Failed to create new database. Error: %s\n, mysql_error(&mysql));
}
...
void mysql_close(MYSQL *mysql)

Друзья! Приглашаем вас к обсуждению. Если у вас есть своё мнение, напишите нам в комментарии.

Поделиться

Дисциплины