1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 微信小程序云开发连接MySQL数据库

微信小程序云开发连接MySQL数据库

时间:2021-10-19 17:34:50

相关推荐

微信小程序云开发连接MySQL数据库

本文章参考以下文章:文章1,文章2

由于在进行微信小程序云开发时,MySQL数据库里的数据不便转移到云数据库,所以在参考了多篇文章后进行了MySQL数据库的连接。

由于时间有限,我就不将步骤一一写出来了,具体步骤可以参考以上两篇文章,我说一下我遇到的几个问题:

1.

这里的设置本地mysql可以被外界访问我并没有实现,直接采用的腾讯云的MySQL数据库,参考以下的配置:

腾讯云Mysql数据库给出了外网地址和内网地址,和图中不一样的是,我们需采用外网地址,再就是需要注意的是默认port是3036,默认的话就不用写,但是我的端口并不是3036,所以在上图中需要添加:

port:"腾讯云显示的外网端口",

在参考了文章1以后,在进行云端测试时,报错超时:

这里我们首先考虑默认时间3s是否足够,所以先设置超时时间:云函数---->版本与配置----->配置---->高级配置------>超时时间,设置的稍微大一些。如图:

设置了超时时间后,发现就算设置最大时间60s都会超时,这里我们参考文章2发现,文章1的代码没有进行断开数据库连接:

当所有数据库请求结束之后,注意要使用.end断开连接,不然云函数会报超时错误。

使用.end断开连接后,进行云端测试,调用成功,并成功返回mysql版本:

这里贴出我的代码:

const cloud = require('wx-server-sdk')cloud.init({env: cloud.DYNAMIC_CURRENT_ENV,//云开发环境的初始化})const mysql = require('mysql2/promise');exports.main = async (event, context) => {try {const connection = await mysql.createConnection({host: "你的外网ip地址", user: "数据库的用户名", password: "你的数据库密码", database: "数据库名称", port:"你的外网端口,默认3036就不用写",})const [rows, fields] = await connection.query('SELECT version();',//query(sql语句)//这里sql语句是查看mysql版本);connection.end(function(err) {//注意要断开连接,不然尽管获取到了数据,云函数还是会报超时错误console.log('断开连接')});console.log(rows)console.log(fields)return rows} catch (err) {console.log("连接错误", err)return err}}

注:我只是个小白,这里参考了两位大佬的文章,主要参考以上两篇文章,遇到相似问题时可以来查看此文章。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。