MySQL TConnectionName: Server connect failed

Модератор: Модераторы

MySQL TConnectionName: Server connect failed

Сообщение VirtUX » 22.02.2019 11:27:49

Сервер MySQL находится на Ubuntu 16.04.5. Подключаться пытаюсь с любого ПК, в том числе и локально на самом сервере.
Развернул уже MySQL-server и на ПК, где работаю в Lazarus (Rosa OS R10), и пытался подключиться локально на нём.
VAR:
Код: Выделить всё
    fSQLQuery: TSQLQuery;
    fSQLTransaction: TSQLTransaction;
    fMySQLConnection: TConnectionName; 

Код: Выделить всё
constructor TESSQLMySQL.Create;
begin
  fSQLQuery := TSQLQuery.Create(nil);
  fSQLTransaction := TSQLTransaction.Create(nil);
  fMySQLConnection := TConnectionName.Create(nil);

  fMySQLConnection.Transaction := fSQLTransaction;
  fSQLTransaction.DataBase := fMySQLConnection;
  fSQLQuery.DataBase := fMySQLConnection;
  fSQLQuery.Transaction := fSQLTransaction;


  //fSQLQuery.Close;
  fSQLQuery.ParseSQL:= false;
  fSQLQuery.ReadOnly:= False;
  fSQLQuery.UpdateMode:= upWhereAll;

  FOnError:= nil;
end;             

Код: Выделить всё
function TESSQLMySQL.ConnectDB(aserver, adb, alogin, apass: string;
  CreateIfNot: boolean): boolean;
begin
  fMySQLConnection.HostName := aserver;
  fMySQLConnection.UserName := alogin;
  fMySQLConnection.Password := apass;
  fMySQLConnection.DatabaseName := adb;

  try
     if not fMySQLConnection.Connected then
        fMySQLConnection.Open; // Тут возникает ошибка
     if not fSQLTransaction.Active then fSQLTransaction.Active := true;

     ExecAnySQL('SET NAMES utf8 COLLATE utf8_general_ci');
     ExecAnySQL('SET CHARACTER SET utf8');
     ExecAnySQL('SET SESSION collation_connection = utf8_general_ci');

     fMySQLConnection.KeepConnection := true;
     Result:= true;
  except
     FreeObj;
     Result:= false;
  end;
end;

Ошибка на строке: fMySQLConnection.Open;
При этом в терминале я подключаюсь без проблем. Доступ и привелегии у пользователя БД - максимальные и "%".
Помогите... Не вижу, где ошибка...
Аватара пользователя
VirtUX
энтузиаст
 
Сообщения: 865
Зарегистрирован: 05.02.2008 10:52:19
Откуда: Крым, Алушта

Re: MySQL TConnectionName: Server connect failed

Сообщение Vadim » 22.02.2019 12:02:18

VirtUX
Нужно посмотреть, как Вы подключаетесь в терминале. Тогда будет видна ошибка.
Vadim
долгожитель
 
Сообщения: 3699
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: MySQL TConnectionName: Server connect failed

Сообщение olegy123 » 22.02.2019 13:45:21

fMySQLConnection.Open; // Тут возникает ошибка хотелось бы узнать что за ошибка..
fMySQLConnection это обертка для libmysql.. которые используют многие программы в том числе "MySQL Workbench"

VirtUX писал(а):При этом в терминале я подключаюсь без проблем.

локально, там где база данных установлена? если да, то нужно шарить IP.
olegy123
энтузиаст
 
Сообщения: 1473
Зарегистрирован: 25.02.2016 12:10:20

Re: MySQL TConnectionName: Server connect failed

Сообщение VirtUX » 22.02.2019 14:03:33

olegy123 писал(а):fMySQLConnection.Open; // Тут возникает ошибка хотелось бы узнать что за ошибка..

Текст ошибки в заголовке темы
olegy123 писал(а):локально, там где база данных установлена?

VirtUX писал(а):Подключаться пытаюсь с любого ПК, в том числе и локально на самом сервере.
Развернул уже MySQL-server и на ПК, где работаю в Lazarus (Rosa OS R10), и пытался подключиться локально на нём.


Добавлено спустя 3 минуты 51 секунду:
Vadim писал(а):VirtUX
Нужно посмотреть, как Вы подключаетесь в терминале. Тогда будет видна ошибка.

Ничего необычного:
Код: Выделить всё
>mysql -h localhost -u username -p

или, если по сети удаленно:
Код: Выделить всё
>mysql -h ip-server -u username -p

Но что Вы тут хотите увидеть, если уменя в терминале нет ошибок? В нём подключение проходит отлично, и я могу работать в БД через командный процессор.
Аватара пользователя
VirtUX
энтузиаст
 
Сообщения: 865
Зарегистрирован: 05.02.2008 10:52:19
Откуда: Крым, Алушта

Re: MySQL TConnectionName: Server connect failed

Сообщение Vadim » 22.02.2019 15:28:27

VirtUX писал(а):Но что Вы тут хотите увидеть, если уменя в терминале нет ошибок? В нём подключение проходит отлично, и я могу работать в БД через командный процессор.

Ну Вы даёте! Если в одном месте всё нормально, а в другом нет, тут то и надо искать различие между этими двумя местами. ;-)
Сразу возникает вопрос:
VirtUX писал(а):aserver

а здесь у нас что? Ведь название переменной ни о чём не говорит...
Vadim
долгожитель
 
Сообщения: 3699
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: MySQL TConnectionName: Server connect failed

Сообщение VirtUX » 22.02.2019 15:31:00

Vadim писал(а):а здесь у нас что?

localhost - если пытаемся подключиться локально, либо ip-server - если подключаемся по сети удаленно.

Добавлено спустя 2 минуты 56 секунд:
Vadim писал(а):Если в одном месте всё нормально, а в другом нет, тут то и надо искать различие между этими двумя местами

Я сообщил, что в терминале подключение происходит без ошибок для того, чтобы было понятно, что с настройками MySQL (я так понимаю) - всё нормально. А вот из программы скомпиленной в Lazarus получаю ошибку. Как я понимаю, проблема где-то или в библиотеке, или в моём коде...
Аватара пользователя
VirtUX
энтузиаст
 
Сообщения: 865
Зарегистрирован: 05.02.2008 10:52:19
Откуда: Крым, Алушта

Re: MySQL TConnectionName: Server connect failed

Сообщение Лекс Айрин » 22.02.2019 15:37:16

VirtUX, и никакого выхлопа вообще? Просто запуск сервера? А если запросить параметры уже принятого соединения?
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: MySQL TConnectionName: Server connect failed

Сообщение Vadim » 22.02.2019 15:50:55

VirtUX писал(а):проблема где-то или в библиотеке, или в моём коде...

Давайте разберём библиотеку. Версия MySQL в Вашей программе соответствует версии MySQL?
А по коду ещё проще:
- правильно ли указано имя сервер?
- правильно ли указан пользователь?
- правильно ли указан пароль?
- правильно ли указана база данных?
Vadim
долгожитель
 
Сообщения: 3699
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: MySQL TConnectionName: Server connect failed

Сообщение VirtUX » 22.02.2019 15:56:53

Лекс Айрин писал(а):и никакого выхлопа вообще?

Код: Выделить всё
Exception at 000000000049CE6F: ESQLDatabaseError:
TConnectionName : Server connect failed.

Больше ничего.

Добавлено спустя 3 минуты 28 секунд:
Vadim писал(а):Версия MySQL в Вашей программе соответствует версии MySQL?

Ошибка, даже, если пытаюсь подключиться локально. А уж в одной ОС используется версия либы одна и таже.
Логин, пароль и т.д. - всё правильно, будьте уверены.

Я вот сейчас подумал: а не может это быть из-за того, что у меня стоит MariaDB вместо чистого MySQL?...
Аватара пользователя
VirtUX
энтузиаст
 
Сообщения: 865
Зарегистрирован: 05.02.2008 10:52:19
Откуда: Крым, Алушта

Re: MySQL TConnectionName: Server connect failed

Сообщение Лекс Айрин » 22.02.2019 16:18:03

VirtUX, а если добавить в переменную path путь до бинарников СУБД? Может просто не видится какая-то библиотека.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: MySQL TConnectionName: Server connect failed

Сообщение VirtUX » 22.02.2019 16:29:21

Лекс Айрин писал(а):а если добавить в переменную path путь до бинарников СУБД?

не понял... mysql-server - это демон. Вы предлагаете прописать вместо адреса сервера путь к скриптам запуска его?
Аватара пользователя
VirtUX
энтузиаст
 
Сообщения: 865
Зарегистрирован: 05.02.2008 10:52:19
Откуда: Крым, Алушта

Re: MySQL TConnectionName: Server connect failed

Сообщение Лекс Айрин » 22.02.2019 16:54:40

VirtUX,нет. Ещё со времён доса была переменная где хранились пути к программам используемым системой. Чтобы не вводить полные пути. Эта переменная до семёрки точно присутствует и в винде... В неё надо добавить путь до СУБД, на случай если какая-нибудь библиотека нужна.
Возможно, что и не поможет, но зачастую вполне действенно. Ах да, возможно потом придется перезагрузить компьютер.

Добавлено спустя 2 минуты 31 секунду:
Прости, что-то тормознул, у тебя же убунта... Так там тоже должно быть аналог этой переменной.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: MySQL TConnectionName: Server connect failed

Сообщение Vadim » 22.02.2019 17:06:40

VirtUX писал(а):а не может это быть из-за того, что у меня стоит MariaDB вместо чистого MySQL?

Всй равно компонент в Lazarus будет использовать библиотеку. Без неё никак. Обычно в таких случаях выдаётся ошибка о несоответствии версий сервера и клиента.
Можно сделать вот что. У Вас там не совсем понятно, какой компонент используется, а именно версия компонента MySQL. Можно найти файл mysql.inc и посмотреть, соответствует ли версия компонента mysql названию клиентской библиотеки, которая у Вас для MariDB.

Добавлено спустя 1 минуту 56 секунд:
Лекс Айрин писал(а):Так там тоже должно быть аналог этой переменной.

Там проблема не в бинарнике. Компонент в Lazarus никаких бинарников не использует, только клиентскую библиотеку. А она, по идее, в Linux одна-единственная.
Vadim
долгожитель
 
Сообщения: 3699
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: MySQL TConnectionName: Server connect failed

Сообщение DedFrend » 22.02.2019 21:22:48

...или лыжи не едут??
Что такое вообще TConnectionName ?
В LCL вижу TSQLConnector
Кроме того, лично мне кажется странным использование компонент без TForm или TDataModule.
Не лучше ли их при проектировании создать?
DedFrend
новенький
 
Сообщения: 39
Зарегистрирован: 25.11.2018 12:21:50

Re: MySQL TConnectionName: Server connect failed

Сообщение Лекс Айрин » 22.02.2019 22:22:01

DedFrend, это сервис.(демон) У него нет формы. Так что ничего странного нету.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

След.

Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Рейтинг@Mail.ru