我在将 discord bot (discord.js) 连接到 phpmyadmin 数据库时遇到了严重问题。这一切都始于我想在与机器人相同的 vps 上安装数据库的事实。我根据本指南安装了 phpmyadmin 数据库 -> https://www.youtube.com/watch?v=O_30P7up2jA。现在是的,在托管 vps 页面上,我使用端口 3306 向防火墙添加了两个 TCP 和 UDP 规则。我的代码如下所示:
console.log("Log")
var con = createConnection({
host: "46.41.xxx.68",
user: "bot",
password: "xxxxxxxxx",
database: "commands",
})
console.log("Log")
con.connect(err => {
if(err) console.log(err)
})
console.log("Log")
con.query("SELECT * FROM useCommands", (err, rows) => {
console.log("Log")
if(err) console.log(err)
let sql
const numberToAdd = parseInt(1)
if(rows.length < 1) {
sql = "INSERT INTO useCommands (commands) VALUES ("+numberToAdd+")"
}else{
let number = rows[0].commands
const addNumber = number + 1
sql = "UPDATE useCommands SET commands = "+addNumber+""
}
con.query(sql)
con.end()
dataBaseTable.setHeading("DATABASE")
dataBaseTable.addRow(chalk.bold.greenBright("MYSQL")+chalk.white(" |---| Connect to database ")+chalk.bold.hex("#f57f17")(host))
dataBaseTable.addRow("Command execution has been registered. Adding to database...")
dataBaseTable.addRow(chalk.greenBright("useCommands")+chalk.white(" column data updated"))
dataBaseTable.addRow(chalk.bold.redBright("MYSQL")+chalk.white(" |---| Disconnected from the database"))
console.log(dataBaseTable.toString())
dataBaseTable.clear()
})
为了调查这个问题,我让我收到了到控制台的消息:
console.log("Log")
我得到 3 个日志结果,但没有得到 4 个:
log
log
log
???
从那以后,我再也没有关于数据库的消息:
con.query("SELECT * FROM useCommands", (err, rows) => {
console.log("Log") // <- lack
if(err) console.log(err)
在 +/- 3 秒后,我只从控制台收到这样的错误:
Error: connect ECONNREFUSED 46.41.xxx.68:3306
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16)
--------------------
at Protocol._enqueue (C:\Users\olios\Desktop\Moje rzeczy\Avi\Boty\AVI BOT\node_modules\mysql\lib\protocol\Protocol.js:144:48)
at Protocol.handshake (C:\Users\olios\Desktop\Moje rzeczy\Avi\Boty\AVI BOT\node_modules\mysql\lib\protocol\Protocol.js:51:23)
at Connection.connect (C:\Users\olios\Desktop\Moje rzeczy\Avi\Boty\AVI BOT\node_modules\mysql\lib\Connection.js:116:18)
at Object.run (C:\Users\olios\Desktop\Moje rzeczy\Avi\Boty\AVI BOT\src\commands\log.js:23:9)
at Client.<anonymous> (C:\Users\olios\Desktop\Moje rzeczy\Avi\Boty\AVI BOT\src\handlers\command.handler.js:176:11)
at Client.emit (events.js:327:22)
at MessageCreateAction.handle (C:\Users\olios\Desktop\Moje rzeczy\Avi\Boty\AVI BOT\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
at Object.module.exports [as MESSAGE_CREATE] (C:\Users\olios\Desktop\Moje rzeczy\Avi\Boty\AVI BOT\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (C:\Users\olios\Desktop\Moje rzeczy\Avi\Boty\AVI BOT\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31)
at WebSocketShard.onPacket (C:\Users\olios\Desktop\Moje rzeczy\Avi\Boty\AVI BOT\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
信息 - 版本等: package.json
"ascii-table": "0.0.9",
"axios": "^0.21.0",
"canvas": "^2.6.1",
"chalk": "^3.0.0",
"discord-canvas": "^1.4.1",
"discord.js": "^12.5.1",
"discord.js-commando": "^0.10.0",
"forever": "^3.0.4",
"js-helpers": "github:m7rlin/js-helpers",
"js-yaml": "^3.13.1",
"moment": "^2.29.1",
"mysql": "^2.18.1",
"nodemon": "^2.0.6",
"remove-suffix": "^2.0.0",
"request": "^2.88.2"
VPS > mysql Ver 14.14 Distrib 5.7.33, for Linux (x86_64) using EditLine wrapper
System - Ubuntu 18.04
如果有人可以帮忙,请