【Qt】连接MySQL失败

问题一

有同学出现问题是 db.setHostName("localhost"); 就直接连接不上,出现的错误提示是

QSqlDatabase:MYSQL driver not loaded

大致原因是qt自带驱动不支持64位的mysql(我也不知道他们qt装的是32位还是64位,按道理应该是32对应32,64对应64),卸了mysql重装32位的就能解决

参考解决方法 

 

问题二

我是,之前做课设的时候能成功连接数据库,db.setHostName("localhost");括号里写local或127.0.0.1均可以,但写其他IP比如192.168.1.177就不可以。也没什么错误提示。

大致原因是MySQL 默认是没有开启这个权限的(只允许使用 host:localhost或者 host:127.0.0.1),如果想用其他IP来访问MySQL,需要手动开启这个权限。

解决方法

  1. 进入MySQL终端
  2. 输入命令 参考
#创建账户
create user 'root'@'192.168.1.177' identified by '123456';


#赋予权限,with grant option这个选项表示该用户可以将自己拥有的权限授权给别人
grant all privileges on *.* to 'root'@'192.168.1.177' with grant option;

#改密码&授权超用户,flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里
flush privileges;

看到网上很多说把创建账户和赋予权限写成一句的,但mysql总提示出错

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by '123456' with grant option' at line 1 

 所以要像前面一样把两个分开来写才行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值