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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值