Bootstrap

Linux+vscode 客户端通过代码操作远程服务器端数据库(MySQL)

这篇文章解决两个问题:

1、在Linux系统下使用vscode用C/C+开发客户端程序时,如何调用mysql库函数;

2、客户端与远程服务器端的MySQL连接时,需要做哪些前期准备工作;

一、在客户端调用mysql库函数

      1、客户端不需要安装Mysql,但需要下载Mysql库

            

sudo apt-get install libmysqlclient-dev

2、下载好库后,需要搞清楚库文件都分别放在什么地方,以备vscode配置task.json和c_cpp_properties.json

 查看头文件位置:

mysql_config --cflags

 -I/usr/include/mysql

查看链接库位置:

mysql_config --libs

 -L/usr/lib/x86_64-linux-gnu -lmysqlclient -lpthread -lz -lm -lrt -lssl -lcrypto -ldl

3、配置vscode中的task.json和c_cpp_properties.json,同时说明一下-I、-L、-l 三者的含义:

-I(大写的i) :表示include文件夹,是一个路径,将此路径添加至c_cpp_properties.json的includePath中:

-L:表示动态链接库的路径,代表so文件的位置;

-l(小写的L):代表所连接的so文件的名字,写入task.json文件时需要去掉前面的lib和后面的.so

例如:在我机子上按路径(/usr/lib/x86_64-linux-gnu)查找到的文件情况如下:

在我的task.json中的args部分配置如下,其他地方不需要改变:

还有不清楚的可以看看这篇:

https://blog.csdn.net/weixin_43409736/article/details/118269691?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_utm_term-1&spm=1001.2101.3001.4242

完成第一步之后,我们可以在vscode编写连接远程Mysql的代码了 ,但还不一定能连接上,为什么???    这个问题困扰了我一天,终于弄明白了:

1、要保证远程服务器MySQL已经开启服务

2、远程服务器MySQL必须授权给客户端远程连接的特权

针对这两点总结出第二步和第三步

二、开启MySQL

有的小伙伴可能根本就不知道自己的MySQL有没有开启,可以通过服务列表来查看:

点击“电脑——>管理——>服务和应用程序”

虽然MySQL Router是MySQL官方提供的一个轻量级MySQL中间件,用于取代以前老版本的SQL proxy,但这里必须有MySQL正在运行,只有MySQL Router正在运行还不行;若没有MySQL这一项,说明未在windows上注册,所以网上提到的开启命令:

在安装目录下(怎么知道自己的安装目录。。。?自己上网百度)输入:

mysqld --install 、net start mysql 后总是报错,并不能启动Mysql:

试了网上提到的多种方法均无效,最后还是输入:

mysqladmin -u root -p shutdown

再输入net start mysql 成功,在服务注册表中也出现了MySQL正在运行。

三、远程服务器MySQL必须授权给客户端远程连接的特权

进入Mysql之后,输入下面三个命令即可:

1、use mysql;

2、show databases;

3、

GRANT ALL PRIVILEGES ON *.* TO '这里写远程登录的账号(比如root)'@'%' IDENTIFIED BY '这里写你远程登录的密码(比如root)' WITH GRANT OPTION;

例如:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456'WITH GRANT OPTION;

经过这三步,就可以在客户端正常使用代码调用Mysql库来访问远程的Mysql数据库了  ~~~

;