PHPFixing
  • Privacy Policy
  • TOS
  • Ask Question
  • Contact Us
  • Home
  • PHP
  • Programming
  • SQL Injection
  • Web3.0

Sunday, July 3, 2022

[FIXED] How do you use the MySQL Connector/C++ and XDevAPI while using XAMPP to run MySQL?

 July 03, 2022     c++, mysql, mysql-x-devapi, xampp     No comments   

Issue

I am trying to access a MySQL database in my C++ code. I have a feeling I may have messed something up along the way, so I'll outline what steps I took and my setup:

  • I installed MySQL Connector/C++
  • I installed MySQL XDevAPI
  • I installed XAMPP and set it up to run a MySQL server
  • I created a database with some tables in phpMyAdmin
  • I linked the Connector/C++ and MySQL Server libraries and includes in my C++ project
  • Then I added the following code:
#include <mysqlx/xdevapi.h>
#include <iostream>
using namespace mysqlx;

int main() {
    try {
        Session sess(33060, "user", "password");
    }
    catch (const Error & err) {
        std::cout << err << std::endl;
        exit(1);
    }

    return 0;
}

I tried this with the port 33060 as I was told that was the default, and I tried it with the port 3306 as that is what it says the port is on XAMPP.

Using the first gives this error message: "CDK Error: No connection could be made because the target machine actively refused it. (winsock:10061)" Using the second gives this error message: "CDK Error: unexpected message"

One thing that I suspect may be a problem is that the MySQL Server and C++ Connector files are in my Program Files on my C drive, while XAMPP seems to have a different set of MySQL files in its installation folder on my D drive. Did I somehow end up with 2 separate installations of MySQL or is there something else going on that I fail to understand? If so how do I handle this?


Solution

As far as I can tell, XAMPP is now based on MariaDB and not MySQL. The MySQL X DevAPI Connectors use the X Protocol (port 33060, by default, on a MySQL server instance) which isn't available on MariaDB.

MariaDB supports the classic MySQL protocol (port 3306), but you can't use X DevAPI clients over that protocol.

So either you find a way to use MySQL 8.x server or you will need a classic protocol connector.

Disclaimer: I'm the lead developer of the MySQL X DevAPI Connector for Node.js



Answered By - ruiquelhas
Answer Checked By - Clifford M. (PHPFixing Volunteer)
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
Newer Post Older Post Home

0 Comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Total Pageviews

Featured Post

Why Learn PHP Programming

Why Learn PHP Programming A widely-used open source scripting language PHP is one of the most popular programming languages in the world. It...

Subscribe To

Posts
Atom
Posts
Comments
Atom
Comments

Copyright © PHPFixing