#c #mysql
#c #mysql
Вопрос:
Я не могу подключиться к удаленному серверу MySQL с помощью этого кода:
MYSQL conn;
bool con_to_db()
{
conn = mysql_init(0);
conn =mysql_real_connect(conn, host, user, pass, 0, NULL, 0);
if(conn)
//cout<<"connection to atestat databse successful "<<endl;
return true;
else
// cout<<"connection problem: "<<mysql_error(conn)<<endl;
return false;
}
int main()
{
if(con_to_db())
cout<<"connection to atestat databse successful "<<endl;
else
cout<<"connection problem: "<<mysql_error(conn)<<endl;
}
после выполнения этого кода в консоли появляется сообщение:
сбой соединения
Комментарии:
1. Можете ли вы подключиться с помощью другого инструмента с того же компьютера? Это будет указывать, связана ли проблема с кодом или с настройкой. Есть ли что-нибудь в консоли после текста «сбой соединения»?
2. Я предлагаю вам сначала скомпилировать свой код с предупреждениями и исправить эти предупреждения. Большинство предупреждений на самом деле являются ошибками, которые не позволяют вашему коду работать правильно.
3. @JasonAller после текста «сбой соединения» ничего не появляется
4. @Ferrybig не показывает мне предупреждения в журнале сборки
Ответ №1:
В первой строке вашего кода MYSQL conn
. Это прототип 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 long flags);
conn
должен быть указатель.
Комментарии:
1. В моем проекте я объявил conn по указателю, но не подключаюсь к серверу
2. На локальном сервере это работает, но на удаленном сервере не подключается
3. Я не понимаю, почему
4. Это потому, что вы пропустили пятый параметр — имя вашей базы данных, к которой вы хотите подключиться.
5. что именно я пропустил в пятом аргументе?