Проблемы с удаленным доступом MySql

0

Топ-обновленное обновление: извинения за верхнюю публикацию; старый вопрос по-прежнему ниже по истерическим причинам, но все изменилось. Теперь это скорее вопрос 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

  • 1
    Порт 3306 заблокирован программным или аппаратным брандмауэром?
  • 0
    очень хороший вопрос Но, к сожалению, я слишком туп, чтобы знать, как это проверить.
Теги:
xampp
mysql-management

2 ответа

3
Лучший ответ

Возможно, ваша проблема заключается в том, что вы включаете порт в свойство 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;
  • 0
    Благодарю. Я только что заметил это и обновлял вопрос, когда ты писал. Как всегда, у вас есть ответы на кончиках ваших пальцев! Спасибо за вашу помощь.
  • 0
    @ Mawg, рад помочь тебе;)
1

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

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

netstat -a -n

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

  • 0
    +1 Спасибо. Я обновил вопрос. Я обнаружил, что могу получить доступ к удаленному d / b из командной строки, но не из своей программы Delphi, поэтому я думаю, что, возможно, у меня плохая строка соединения. Можете посмотреть, пожалуйста?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню