Ubuntu用C++编写连接数据库运行后报错Bad handshake

初入linux编程,使用C语言连接Mysql数据的时候报错

Bad handshake

疑惑。。。握手错误?
百度看到了很多答案
有的说是账号密码错误,有的说是权限不够
突然有发现说Mysql的版本太高,密码不对应
然而,我用的MySQL是3.1版本的
3.1还低?去官网一看,卧槽,已经更新到Mysql5.7了
因为我在ubuntu是使用命令安装的mysql链接库

sudo apt install libmysqlclient-dev

分析了一下,用命令安装的肯定是市面上支持的最高版本
但是我不舍得用了很久的3.1数据库呀,备份太麻烦了
然后去服务器安装了最新的mysql 5.7
使用gcc命令编译,运行

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

然后数据表被select语句读出来了
解决

解惑:

如果安装数据库连接库时候出现错误信息,先输入命令

sudo  apt  update
sudo  apt  upgrade 

如果连接数据库的时候出现其他错误
比如我就遇到
127.0.0.1 is not allowed to connect to this MySQL server
这个错误,直接去服务器进入mysql环境,执行以下语句,就好啦

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

猜你喜欢

转载自blog.csdn.net/AcStudio/article/details/106856747