Проблемы с удаленным доступом MySql - PullRequest
0 голосов
/ 14 мая 2011

Топ-опубликованное обновление: извинения за топ-пост; старый вопрос все еще ниже по истерическим причинам, но все изменилось. Теперь это скорее вопрос Delphi, чем вопрос MySql.

Я обнаружил, что из командной строки я могу получить доступ к удаленной базе данных MySql с помощью

mysql.exe -h 192.168.89.128 -u my_user -p

Похоже, я правильно настроил удаленный сервер.

Однако, когда я пытаюсь сделать это из Delphi с

  AdoConnection.LoginPrompt:=False;//dont ask for the login parameters
  AdoConnection.ConnectionString := 
   Format(MYSQL_CONNECT_STRING,[ConfigurationForm.GetServerIpAddress() + ':3306',
                                DataBase,
                                ConfigurationForm.GetUserName(),
                                ConfigurationForm.GetPassword()]);
  AdoConnection.Connected := True; //open the connection

, который дает ConnectionString

Driver={MySQL ODBC 5.1 Driver};  
Server=192.168.89.128:3306;  
Database=mysql;User=my_user;
Password=my_password;Option=3;

Я получаю исключение

"Unknown MySql server host '192.168.89.128:3306' (11004)"

Может у меня есть halpz?


Обновление и ответ: на всякий случай, если кто-нибудь погуглит и найдет это.

Проблема была с моей Строкой Соединения.

Я добавлял порт к хосту Server=192.168.89.128:3306;, когда я должен был указать их отдельно, т. Е. Server=192.168.89.128;Port=3306;, так что моя полная строка подключения

Driver={MySQL ODBC 5.1 Driver};
Server=192.168.89.128;
Port=3306;
Database=mysql;
User=eLogger; 
Password=bct_eLogger;
Option=3;

Прошу прощения у тех, кто заколдовал не то дерево, чтобы попытаться помочь мне. Я надеюсь, что это, в свою очередь, поможет бедному Delphi-кодеру. Смотри также http://delphi.about.com/od/mysql/qt/mysqladoconn.htm

Ответы [ 2 ]

3 голосов
/ 14 мая 2011

Возможно, ваша проблема в том, что вы включаете порт в свойство server, попробуйте переписать строку подключения без порта 3306, потому что это порт по умолчанию для mysql, или включите этот порт в свойство port.

что-то в этом роде

без порта

Driver={MySQL ODBC 5.1 Driver};Server=192.168.89.128;Database=mysql;User=my_user; Password=my_user;Option=3;

Указание порта TCP / IP

Driver={MySQL ODBC 5.1 Driver};Server=192.168.89.128;Port=3306;Database=mysql;User=my_user; Password=my_user;Option=3;
1 голос
/ 14 мая 2011

Проверьте, открыт ли порт

Выполните следующую команду и найдите прослушиватель «: 3306» (вы не упомянули UDP / TCP).Это подтвердит, что что-то работает на порту.

netstat -a -n

Полный ответ здесь о проверке портов https://serverfault.com/questions/26564/how-to-check-if-a-port-is-blocked-on-windows

...