初入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;