Delphi XE5 FireDAC Ошибка: не удается загрузить библиотеку поставщика [libmysql.dll или libmysqld.dll]
Я использую Delphi XE5 в Windows 7 64bit и просто пытаюсь использовать компонент FireDAC. Я использую один компонент TFDConnection для подключения к локальной базе данных MySQL (v5.6.15).
Я уже поместил libmysql.dll (32bit v5.6.15) в папку Project, папку EXE и папку C:\Windows\System32 (которая находится в папке PATH), но при попытке подключиться из IDE я обнаружил ошибку:
Не удается загрузить библиотеку поставщика [libmysql.dll или libmysqld.dll]. Система не может найти файл spcified. Подсказка: проверьте, что он находится в каталогах PATH или EXE-файла приложения и имеет битность x86.
Я также попытался поместить libmysql.dll (64bit v5.6.15) во все эти три папки, но все еще сталкиваюсь с той же ошибкой.
Я что-то пропускаю, чтобы связать это? Спасибо вам за помощь.
6 ответов
Попробуйте установить для свойства TFDPhysMySQLDriverLink.VendorLib полный путь к libmysql.dll и посмотрите, какое сообщение вы получите, или приложение подключится.
Пробовал решение на основе комментария da-soft выше, и оно работает хорошо. Спасибо
Не копируйте DLL-файлы в каталог bin, как подсказывают некоторые другие ответы. Это может помешать работе механизма защиты от копирования и привести к исчезновению вашей IDE без предупреждения, что может привести к нарушению лицензии.
Скопируйте файлы dll в другое место на вашем пути, которое может видеть IDE (и / или ваше приложение).
- Скачать с: https://dev.mysql.com/downloads/connector/c/
- скопируйте libmysql.dll в: C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\bin
XAMPP
C:\xampp\mysql\lib\libmysql.dll
C:\xampp\mysql\lib\libmysqld.dll
СКОПИРОВАТЬ В
C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\bin
Была эта же проблема при попытке подключить FireDAC к mysql в Берлине 10.1
Mysql управляется WAMPserver64 на 64-битной машине Window 10. Итак, у меня есть libmysql.dll {64-bit}, расположенный в моей папке WAMP mysql bin. Скачал mysql-connector-c-6.1.6-win32.zip с https://dev.mysql.com/downloads/connector/c/ и поместил libmysql.dll {32-bit} в SysWOW64, как предложено NoName
Добавил следующие строки в FDDrivers.ini
[MySQL]
BaseDriverID=MySQL
VendorLibWin32=c:\Windows\SysWOW64\libmysql.dll
VendorLibWin64=c:\wamp64\bin\mysql\mysql5.7.14\lib\libmysql.dll
Также возникли проблемы, описанные выше с Сиэтлом, при подключении к локальной и удаленной 64-битной версии MySQL.
Ни размещение 32-битной версии libmysql.dll (полученной из того же источника, что и NoName выше) в каталоге exe, ни установка свойства VendorLib не работали.
Однако из-за исключения, возникшего на компьютере с Windows 7, который сообщал, что не может загрузить VCRuntime140.dll, я нашел копию и поместил ее в тот же каталог, что и libmysql.dll, и это сработало.
Все, что я мог найти о VCRuntime140 онлайн, это то, что он используется MS Visual Studio. Копии, найденные на машинах, на которых я выполнял поиск, находились в каталогах, принадлежащих DropBox (это я скопировал) и OneDrive. Я не смог найти онлайн-ресурс, который бы удовлетворительно объяснил, почему он работает или зачем он понадобится.