#c #mysql #xampp #mysql-x-devapi
#c #mysql #xampp #mysql-x-devapi
Вопрос:
Я пытаюсь получить доступ к базе данных MySQL в моем коде на C . У меня такое чувство, что я, возможно, что-то напутал на этом пути, поэтому я опишу, какие шаги я предпринял, и мою настройку:
- Я установил MySQL Connector / C
- Я установил MySQL XDevAPI
- Я установил XAMPP и настроил его для запуска сервера MySQL
- Я создал базу данных с некоторыми таблицами в phpMyAdmin
- Я связал серверные библиотеки Connector / C и MySQL и включил их в свой проект на C
- Затем я добавил следующий код:
#include <mysqlx/xdevapi.h>
#include <iostream>
using namespace mysqlx;
int main() {
try {
Session sess(33060, "user", "password");
}
catch (const Error amp; err) {
std::cout << err << std::endl;
exit(1);
}
return 0;
}
Я попробовал это с портом 33060, поскольку мне сказали, что это значение по умолчанию, и я попробовал это с портом 3306, поскольку именно так он говорит, что порт находится на XAMPP.
Использование первого выдает это сообщение об ошибке: «Ошибка CDK: не удалось установить соединение, поскольку целевая машина активно отказалась от него. (winsock: 10061)» Использование второго выдает это сообщение об ошибке: «Ошибка CDK: неожиданное сообщение»
Одна вещь, которую я подозреваю, может быть проблемой, заключается в том, что файлы сервера MySQL и C Connector находятся в моих Program Files на моем диске C, в то время как XAMPP, похоже, имеет другой набор файлов MySQL в папке установки на моем диске D. Я каким-то образом закончил с 2 отдельными установками MySQL или происходит что-то еще, чего я не понимаю? Если да, то как мне с этим справиться?
Комментарии:
1. Что показывает панель управления XAMPP для MySQL?
2. @JohnHanley Отображается зеленое поле, указывающее, что оно запущено, PID и порт, о котором я упоминал выше (3306)
Ответ №1:
Насколько я могу судить, XAMPP теперь основан на MariaDB, а не на MySQL. Соединители MySQL X DevAPI используют протокол X (порт 33060, по умолчанию, на экземпляре сервера MySQL), который недоступен в MariaDB.
MariaDB поддерживает классический протокол MySQL (порт 3306), но вы не можете использовать X DevAPI-клиентов по этому протоколу.
Итак, либо вы найдете способ использовать сервер MySQL 8.x, либо вам понадобится соединитель классического протокола.
Отказ от ответственности: Я ведущий разработчик соединителя MySQL X DevAPI для Node.js
Комментарии:
1. Хорошо, тогда, возможно, я просто откажусь от XAMPP. Есть какие-либо советы о том, как запустить сервер MySQL без него?
2. Ну, я думаю, это зависит от того, нужны ли вам Apache, PHP или Perl (которые устанавливаются из коробки с XAMPP). Если это так, у меня нет хороших советов. Но если вам просто нужен MySQL, работающий в Windows, вот руководство .
3. Ах, я думаю, я понял, как заставить MySQL Workbench работать. Спасибо вам за вашу помощь!