在Ubuntu上使用VSCode编译MySQL Connector/C连接库

后阳炎
2023-12-01

首先下载并解压MySQL Connector/C源码,然后执行以下步骤:

1、安装MySQL Connector/C依赖:在终端中输入以下命令来安装MySQL Connector/C的依赖项:

sudo apt-get install build-essential cmake

2、下载并解压MySQL Connector/C源码:在终端中输入以下命令来下载MySQL Connector/C源码,并解压:

从官网链接下载压缩包:https://dev.mysql.com/get/Downloads/Connector-C/mysql-connector-c-6.1.11-src.tar.gz

3、打开vscode,创建新的工作区,将以上文件夹加入工作区。

4、在VSCode中打开终端(按Ctrl + Shift + `),并输入以下命令创建build文件夹并编译生成cmake文件:

cd mysql-connector-c-6.1.11-src
mkdir build
cd build
cmake ..

这里可能会报错CMake Error at cmake/install_macros.cmake:365 ,请看我另一篇文章:Ubuntu使用VSCode编译MySQL Connector/C库踩坑_naruto2017的博客-CSDN博客

5、编译连接库:在终端中输入以下命令来编译连接库:

make

6、安装连接库:在终端中输入以下命令来安装连接库:

sudo make install

7、配置链接器:在终端中输入以下命令来配置链接器:

sudo ldconfig

8、测试连接库:在VSCode中打开一个新的文件,输入以下代码:

#include <stdio.h>
#include <mysql.h>

int main(void) {
    MYSQL *conn;
    conn = mysql_init(NULL);

    if (conn == NULL) {
        printf("初始化失败!\n");
        return 1;
    }

    if (mysql_real_connect(conn, "localhost", "root", "password", NULL, 0, NULL, 0) == NULL) {
        printf("连接失败!\n");
        mysql_close(conn);
        return 1;
    }

    printf("连接成功!\n");

    mysql_close(conn);

    return 0;
}

将其中的“password”替换为您的MySQL密码,然后点击菜单栏中的“终端”->“新终端”,在新打开的终端中输入以下命令来编译并运行程序:

gcc -o main main.c `mysql_config --cflags --libs`

./main

或(我使用下面这个命令才编译成功

gcc -o main main.c -I/usr/local/include/mysql -L/usr/local/lib -lmysqlclient

./main

如果程序输出“连接成功!”,则说明连接库已经成功编译并可以正常工作。

此外,如果mysql.sock文件不存在,可以使用以下命令建立软连接:

sudo ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock

如果报错:Authentication plugin 'caching_sha2_password' cannot be loaded

使用/etc/mysql/debian.cnf文件中的超级用户登录mysql,在指定用户的修改密码页面,将其password加密方式修改为native

客户机登录时,可能会出现以下问题:

1. 客户机器连接服务器时,如果使用127.0.0.1或localhost可以访问,但使用服务器IP无法访问,需要做两件事:

a. 将mysql的服务器地址绑定为当前机器的IP:

修改/etc/mysql/mysql.conf.d/mysqld.cnf文件中的bind-address值为指定服务器的地址

bind-address = 服务器地址

b. 设定指定用户的登录信息中的host为AnyHost:

可以通过phpmyadmin登录,点击UserAccounts,将指定用户的LoginInformation的host值改为AnyHost,当然也可以用sql将指定用户的host字段的值改为'%',效果是一样的。

2. 如果报错:SSL connection error,可以在文件/etc/mysql/my.cnf最后添加以下内容,然后重启mysql服务器:

[mysqld]

skip_ssl

 类似资料: