Ошибка инициализации dbexpress драйвера бд

Перейти к контенту

radstudio logo

Sometimes the simple things are harder than you expected and dbexpress probably comes under that category, it was less express than I had expected but once you figure things out it does work. Some of the problems were my fault while others took time due to the obscur nature of the errors returned by XE and XE2.

If you start by adding the TSQLConnect component, select the MySQL driver and configure your HostName, Database, UserName and Password you can try and connect, you will most likely strike the following error :-

Show Plain Text

Text code

  1. DBX Error: Driver could not be properly initialized. Client library may be missing, not installed properly, of the wrong version, or the driver maybe be missing from the system path…

So once you figure out that your missing the libmysql.dll you might try and grab the latest MYSQL C Connector from dev.mysql.com, they are up to version 6.0.2 at the time of writing this, you’ll get the same error above. I was getting a more obscure crash before XE2 Update 1 which I didn’t note down at the time, that abstract error message took me a while to figure out and was related to the libmysql.dll version.

It would be nice if embarcadero provided a location where you could download the compatible libmysql.dll files that work with dbexpress, it is worth noting that the XE2 read me does come with the following note :-

Show Plain Text

Text code

  1. Supported Servers

  2. dbExpress

  3. MySQL 5.1, 5.0.27, 4.1* (Pro/Ent/Ult/Arch) (Driver dbxMYS.dll, Client libmysql.dll)

  4. The following combinations have been tested:

  5. LibMySQL.dll (5.1.XX)  DBXMys.dll  MySQL 4.0.XX Server  

  6. LibMySQL.dll (5.1.XX)  DBXMys.dll  MySQL 4.0.XX Server  

  7. LibMySQL.dll (5.1.XX)  DBXMys.dll  MySQL 5.0.XX Server  

  8. LibMySQL.dll (5.1.XX)  DBXMys.dll  MySQL 5.1.XX Server

To get a 5.1.XX compatible DLL you will need to download an achieved mysql complete installation zip and extract the DLL as no compatible versioned MYSQL C Connector package could be downloaded when I looked.

To save you some time I added zip download containing the win32 x86 libmysql.dll for those who wish to download.

This is libmysql.dll version 5.1.59 win32 x86 DLL which I have tested and works with both XE and XE2.

50 Responses to “Getting embarcadero dbexpress mysql working — DBX Error: Driver not initialized”

44.
w. swelam

Sep 28, 2012

Sorry, comments have been closed for this post.

Я бегаю Delphi XE3 (полная версия), база данных MySQL, и это ошибка, которую я получаю при нажатии Test Connection.

Введите описание изображения здесь

В ответ я нашел библиотеку libmysql в своем каталоге xampp и скопировал ее в свой каталог System32. Однако это не работает.

К каким библиотекам/драйверам относится это сообщение и в какой каталог их нужно поместить?

версия libmysql — 5.5.16.0

2 ответы

В сообщении говорится, что библиотека может быть:

  • отсутствует;
  • неправильно установлен; или же
  • неправильной версии

Я гуглил для библиотеки и наткнулся на это блоге в котором обсуждается вышеупомянутое сообщение об ошибке и предоставляется более свежая версия библиотеки libmysql, которая должна быть помещена в каталог bin (EmbarcaderoRAD Studio10.0bin).

Ссылка для скачивания библиотеки libmysql

ответ дан 26 окт ’12, 08:10

Создан 17 янв.

Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками

mysql
delphi
dbexpress
delphi-xe3

or задайте свой вопрос.

I need to make a long running task in the background. I’m using OmniThreadLibrary hopping this could help me.

I use dbexpress+mssql driver. I can connect ok when is in the main thread, but get:

Project Project1.exe raised exception class TDBXError with message
‘DBX Error: Driver could not be properly initialized. Client library
may be missing, not installed properly, of the wrong version, or the
driver may be missing from the system path.’.

The connections are created in each thread, not shared datamodule:

type
  TdbManager = class(TObject)
  private
    { private declarations }
    FCon: TSQLConnection;
  public
    { public declarations }
    procedure Open(Driver:String; aparams:TStringList);overload;
    procedure Close;

    constructor Create;
    destructor Destroy;override;
  end;

  constructor TdbManager.Create;
begin
  inherited Create;
  FCon := TSQLConnection.Create(nil);
end;

procedure TdbManager.Open(Driver: String; aparams: TStringList);
var
  i: Integer;
  key:string;
begin
  FCon.DriverName := Driver;

  for i := 0 to params.Count - 1 do
  begin
    key := params.Names[i];
    FCon.Params.Values[key] := params.Values[key];
  end;

  LogMsg('Open DB '+ Driver + ': ' + FHost + '' + FDatabase);

  FCon.Open;
  LogMsg('Done.');
end;

And the background task is executed:

procedure TBackupPlan.OnScheduleTrigger(Sender: TScheduledEvent);
begin
  Parallel.Async(procedure
  begin
    ExecuteDataTask( Sender.Name );
  end);
end;

procedure TBackupPlan.ExecuteDataTask(const Name: String);
var
  db:TdbManager;
begin
  db := nil;

  db := TSqlServerManager.Create;
  db.Open(self.Driver, options);

  result := db;
end;

If I execute this directly, open ok. If I use Parallel.Async then get the error. What is happend here?

I need to make a long running task in the background. I’m using OmniThreadLibrary hopping this could help me.

I use dbexpress+mssql driver. I can connect ok when is in the main thread, but get:

Project Project1.exe raised exception class TDBXError with message
‘DBX Error: Driver could not be properly initialized. Client library
may be missing, not installed properly, of the wrong version, or the
driver may be missing from the system path.’.

The connections are created in each thread, not shared datamodule:

type
  TdbManager = class(TObject)
  private
    { private declarations }
    FCon: TSQLConnection;
  public
    { public declarations }
    procedure Open(Driver:String; aparams:TStringList);overload;
    procedure Close;

    constructor Create;
    destructor Destroy;override;
  end;

  constructor TdbManager.Create;
begin
  inherited Create;
  FCon := TSQLConnection.Create(nil);
end;

procedure TdbManager.Open(Driver: String; aparams: TStringList);
var
  i: Integer;
  key:string;
begin
  FCon.DriverName := Driver;

  for i := 0 to params.Count - 1 do
  begin
    key := params.Names[i];
    FCon.Params.Values[key] := params.Values[key];
  end;

  LogMsg('Open DB '+ Driver + ': ' + FHost + '' + FDatabase);

  FCon.Open;
  LogMsg('Done.');
end;

And the background task is executed:

procedure TBackupPlan.OnScheduleTrigger(Sender: TScheduledEvent);
begin
  Parallel.Async(procedure
  begin
    ExecuteDataTask( Sender.Name );
  end);
end;

procedure TBackupPlan.ExecuteDataTask(const Name: String);
var
  db:TdbManager;
begin
  db := nil;

  db := TSqlServerManager.Create;
  db.Open(self.Driver, options);

  result := db;
end;

If I execute this directly, open ok. If I use Parallel.Async then get the error. What is happend here?

При инициализации БД выдает след. ошибку

postgres@1csrv:/usr/LOCAL/pgsql/bin$ ./initdb -D /DATA
The files belonging TO this DATABASE system will be owned BY user "postgres".
This user must also own the server process.
 
The DATABASE cluster will be initialized WITH locale C.
The DEFAULT DATABASE encoding has accordingly been SET TO SQL_ASCII.
The DEFAULT text search configuration will be SET TO "english".
 
fixing permissions ON existing directory /DATA ... ok
creating subdirectories ... ok
selecting DEFAULT max_connections ... 100
selecting DEFAULT shared_buffers ... 32MB
creating configuration files ... ok
creating template1 DATABASE IN /DATA/base/1 ... ok
initializing pg_authid ... FATAL:  syntax error at OR near "REVOKE" at character 1
STATEMENT:  REVOKE ALL ON pg_authid FROM public;
 
child process exited WITH exit code 1
initdb: removing contents of DATA directory "/DATA"
postgres@1csrv:/usr/LOCAL/pgsql/bin$ 

ОС Slackware 13.37, Postgresql 9.0.3.
Исходники и патчи брал с сайта 1С. Скомпилировалась и установилаь без ошибок.
Подскажите где посмотреть?

Nfox32

Сообщения: 2
Зарегистрирован: 14 мар 2019, 17:00
Контактная информация:

Re: Ошибка инициализации BDE

Keepsoft писал(а):

Nfox32 писал(а):Покупая лицензию usb я правильно понял что установив эту версию на флешку вставленную на домашнем компьютере, в последствии смогу запускать и пользоваться домашней бухгалтерией не устанавливая программу на каждый компьютер, а как портативным приложением на домашнем компьютере, на своём ноутбуке, на двух рабочих компьютерах (в зависимости где смена), которые находятся в корпоративном домене, но моя учетная запись является локальным администратором? Потому что на домашнем ДБ запускается, а на рабочем воникает такая же ошибка, как у других пользователей в этой теме. Что я сделал, или делаю не правильно пытаясь пользоваться программой с той же флешки, но на разных компьютерах?

Если вдруг такая проблема возникла, то нужно сделать следующее:
1. Подключите флешку к тому компьютеру, на котором возникает ошибка
2. Закройте Домашнюю бухгалтерию, если она у Вас открыта
3. Скачайте последнюю версию Домашней бухгалтерии:

http://www.keepsoft.ru/download/hbk/homebuh.exe

4. Проинсталлируйте ее в ту папку на флешку, где Домашняя бухгалтерия стоит сейчас.

То есть на каждом компьютере, где я хочу использовать программу нужно произвести установку Домашней Бухгалтерии, чтоб она появилась в перечне установленных программ и компонентов? А флешка просто даст возможность использовать без повторной активации?
Я думал что эта конструкция будет работать как флешка сбербанка с портативным клиентом запускаемым с флеш токена и не требующем отдельной установки (тут транзакций не проводится, поэтому сам токен не нужен, достаточно пароля на программу)

Вложения
2019-03-15_143206.jpg
2019-03-15_143206.jpg (99.41 КБ) 3455 просмотров

Аватара пользователя

Keepsoft

Администратор
Сообщения: 3648
Зарегистрирован: 20 мар 2008, 18:03
Контактная информация:

Re: Ошибка инициализации BDE

Сообщение Keepsoft » 24 мар 2019, 23:27

Nfox32 писал(а):

Keepsoft писал(а):

Nfox32 писал(а):Покупая лицензию usb я правильно понял что установив эту версию на флешку вставленную на домашнем компьютере, в последствии смогу запускать и пользоваться домашней бухгалтерией не устанавливая программу на каждый компьютер, а как портативным приложением на домашнем компьютере, на своём ноутбуке, на двух рабочих компьютерах (в зависимости где смена), которые находятся в корпоративном домене, но моя учетная запись является локальным администратором? Потому что на домашнем ДБ запускается, а на рабочем воникает такая же ошибка, как у других пользователей в этой теме. Что я сделал, или делаю не правильно пытаясь пользоваться программой с той же флешки, но на разных компьютерах?

Если вдруг такая проблема возникла, то нужно сделать следующее:
1. Подключите флешку к тому компьютеру, на котором возникает ошибка
2. Закройте Домашнюю бухгалтерию, если она у Вас открыта
3. Скачайте последнюю версию Домашней бухгалтерии:

http://www.keepsoft.ru/download/hbk/homebuh.exe

4. Проинсталлируйте ее в ту папку на флешку, где Домашняя бухгалтерия стоит сейчас.

То есть на каждом компьютере, где я хочу использовать программу нужно произвести установку Домашней Бухгалтерии, чтоб она появилась в перечне установленных программ и компонентов? А флешка просто даст возможность использовать без повторной активации?
Я думал что эта конструкция будет работать как флешка сбербанка с портативным клиентом запускаемым с флеш токена и не требующем отдельной установки (тут транзакций не проводится, поэтому сам токен не нужен, достаточно пароля на программу)

Переустановить Домашнюю бухгалтерию нужно только в том случае, если на компьютере есть проблемы с настройками BDE.

С уважением, Keepsoft.


Good User

Активист
Сообщения: 54
Зарегистрирован: 21 июл 2016, 22:24

Re: Ошибка инициализации BDE

Сообщение Good User » 28 май 2019, 00:21

если на компьютере есть проблемы с настройками BDE.

В 2000 году Borland представила новую, основанную на SQL-драйверах, архитектуру, названную dbExpress, которая сделала устаревшей использовавшуюся в BDE технологию SQL Links.


liss

Сообщения: 1
Зарегистрирован: 18 июл 2019, 21:58

Re: Ошибка инициализации BDE

Сообщение liss » 18 июл 2019, 22:00

у меня была куплена лицензия на флешку с версией 6.3, работала на win7. Сейчас перешла на win10 и появилась ошибка bde, но ведь версию 6.3 я уже не могу скачать и переустановить. что делать?


Аватара пользователя

Keepsoft

Администратор
Сообщения: 3648
Зарегистрирован: 20 мар 2008, 18:03
Контактная информация:

Re: Ошибка инициализации BDE

Сообщение Keepsoft » 23 июл 2019, 13:23

liss писал(а):у меня была куплена лицензия на флешку с версией 6.3, работала на win7. Сейчас перешла на win10 и появилась ошибка bde, но ведь версию 6.3 я уже не могу скачать и переустановить. что делать?

Все версии Домашней бухгалтерии доступны на нашем официальном сайте.
1. Закройте Домашнюю бухгалтерию 6, если она у Вас открыта
2. Скачайте Домашнюю бухгалтерию 6:

https://www.keepsoft.ru/download/hbk/homebuh63.exe

3. Проинсталлируйте ее в ту папку, где Домашняя бухгалтерия 6 стоит сейчас.

С уважением, Keepsoft.



Вернуться в «Общие вопросы»

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

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

radstudio logo

Sometimes the simple things are harder than you expected and dbexpress probably comes under that category, it was less express than I had expected but once you figure things out it does work. Some of the problems were my fault while others took time due to the obscur nature of the errors returned by XE and XE2.

If you start by adding the TSQLConnect component, select the MySQL driver and configure your HostName, Database, UserName and Password you can try and connect, you will most likely strike the following error :-

Show Plain Text

Text code

  1. DBX Error: Driver could not be properly initialized. Client library may be missing, not installed properly, of the wrong version, or the driver maybe be missing from the system path…

So once you figure out that your missing the libmysql.dll you might try and grab the latest MYSQL C Connector from dev.mysql.com, they are up to version 6.0.2 at the time of writing this, you’ll get the same error above. I was getting a more obscure crash before XE2 Update 1 which I didn’t note down at the time, that abstract error message took me a while to figure out and was related to the libmysql.dll version.

It would be nice if embarcadero provided a location where you could download the compatible libmysql.dll files that work with dbexpress, it is worth noting that the XE2 read me does come with the following note :-

Show Plain Text

Text code

  1. Supported Servers

  2. dbExpress

  3. MySQL 5.1, 5.0.27, 4.1* (Pro/Ent/Ult/Arch) (Driver dbxMYS.dll, Client libmysql.dll)

  4. The following combinations have been tested:

  5. LibMySQL.dll (5.1.XX)  DBXMys.dll  MySQL 4.0.XX Server  

  6. LibMySQL.dll (5.1.XX)  DBXMys.dll  MySQL 4.0.XX Server  

  7. LibMySQL.dll (5.1.XX)  DBXMys.dll  MySQL 5.0.XX Server  

  8. LibMySQL.dll (5.1.XX)  DBXMys.dll  MySQL 5.1.XX Server

To get a 5.1.XX compatible DLL you will need to download an achieved mysql complete installation zip and extract the DLL as no compatible versioned MYSQL C Connector package could be downloaded when I looked.

To save you some time I added zip download containing the win32 x86 libmysql.dll for those who wish to download.

This is libmysql.dll version 5.1.59 win32 x86 DLL which I have tested and works with both XE and XE2.

50 Responses to “Getting embarcadero dbexpress mysql working — DBX Error: Driver not initialized”

44.
w. swelam


Sep 28, 2012

Sorry, comments have been closed for this post.

I am running Delphi XE3 (Ultimate Edition), MySQL database and this is the error I get when a click Test Connection.

enter image description here

As a response, I located the libmysql library in my xampp directory and copied it over to my System32 directory. This does not work however.

Which libraries/drivers is this message referring to and what is the correct directory to place them in?

libmysql version — 5.5.16.0

I got the stopper error below in my apps. I used Delphi Berlin 64bit compiler. And also used the dbxora.dll as dbxpress driver default from embarcadero. Connected to Oracle 12c DB server using TSQLConnection component.

DBX Error: Driver could not be properly initialized. Client library may be missing, not installed properly, of the wrong version, or the driver may be missing from the system path.

How can I fix this?

AJNeufeld's user avatar

AJNeufeld

8,5081 gold badge25 silver badges44 bronze badges

asked Aug 10, 2016 at 2:19

Taruna Feri S's user avatar

4

A DB Express driver is not always sufficient on it’s own to connect to some data sources. For certain data sources (most of them in fact) you also require the client drivers for that data source, usually provided by the database vendor themselves.

Oracle is one of these.

As well as the DB Express driver you also need to install the Oracle Client software provided by Oracle. You also need to ensure that you install the correct version.

i.e. in your case since you indicate you are building a 64-bit application then you will need the 64-bit Oracle client.

If you (or your intended users) already have the 32-bit Oracle client installed then you might consider building your application as a 32-bit application instead, unless you absolutely need 64-bit capabilities.

answered Aug 10, 2016 at 3:28

Deltics's user avatar

DelticsDeltics

22k2 gold badges42 silver badges70 bronze badges

6

Студворк — интернет-сервис помощи студентам

Всем привет, хочу поработать с mysql но столкнулся на начальной стадии с ошибкой при подключении.

DBX Error: Driver could not be properly initialized. Client library may be missing, not installed properly, of the wrong version, or the driver may be missing from the system path..

Читал в инете что libmysql.DLL не хватает, я её в bin закинул как сказано в статье, но нечего так и не изменилось.
прошу помочь может кто знает где есть дельная статья про это или подскажите что делать..

я использую Delphi xe6 и сервер mysql — MySQL 5.5 Command Line Client

Спасибо за помощь!!!

  • Ошибка инициализации dbd mobile
  • Ошибка инициализации data access sqlite штрих м
  • Ошибка инициализации d3d diablo 3
  • Ошибка инициализации cryptoenergypro com сервер не зарегистрирован
  • Ошибка инициализации com порта возможно он занят другим приложением вкт 7