文章主要提供微信小程序连接后端本地mysql服务器可能会遇到的一些问题和解决,供大家参考,欢迎指正补充。
原参考文章:微信小程序通过 node 连接 mysql——方法,简要原理,及一些常见问题_微信小程序连接本地mysql数据库_灰海宽松的博客-CSDN博客 ,还请多多支持原作者!
node搭建以及js请求可以参考上述文章。
问题一:终端报错:Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
问题主要出于mysql8.0版本以上加密方式Node还不支持。
解决方法一:命令提示符
键入
alter user 'admin'@'localhost' identified with mysql_native_password by '123456'
修改密码。123456用自己的密码代替,可以是原密码。
然后键入
flush privileges
这一步可以不执行,quit就行。
上述解决办法是绝大多数博主给出的解决办法,但我执行后没有奏效。
解决方法二:降低MySQL版本
可以把mysql版本降低到5.0版本,网上有成功的例子。
解决办法三:参考GitHub中给出的解决办法
https://youtu.be/W2TuIx2y4kw?si=EfFIX4vuN65ymf6C
(视频发布于youtube)尝试了很多种方法,最后通过这个方法解决的。
解决办法四:仔细检查语法
const IPAddress='[你的数据库地址]'
const UserName='[mysql 用户名]'
const PWD='[mysql 密码]'
const DBName='[要操作的数据库名]'
上述内容错误也可能导致这个问题,比如把【mysql 用户名】写错就会这样报错。
正常情况示例
正常情况下监听的内建终端里会输出(数据内容为虚构):
console里data项就是从数据库获取的信息。
问题二:table或者database不存在
仔细查看调用的数据库和表单是否存在以及调用是否合法,数据库和table可以通过navicat工具查看。相关的SQL入门知识可以查看下面这篇博客,分了七章:SQL入门:第一章 建立自己的数据库_数据库搭建-CSDN博客
问题三:域名合法问题
对于正式上线的项目,小程序要求服务器域名必须在小程序管理后台中添加,域名必须经过ICP备案,且支持HTTPS和WSS协议,对于开发人员来说,可以在微信开发者工具中关闭这些验证,从而利用本地服务器来测试网络功能。
解决办法:在详情页勾选不校验合法域名
目前主要梳理出以上三个问题,仅供大家参考,欢迎指正补充。