这篇文章解决两个问题:
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部分配置如下,其他地方不需要改变:
还有不清楚的可以看看这篇:
完成第一步之后,我们可以在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数据库了 ~~~