通过 node.js 连接到 mysql 时出现未知数据库错误
Posted
技术标签:
【中文标题】通过 node.js 连接到 mysql 时出现未知数据库错误【英文标题】:I'm getting unknown database error while connecting to mysql through node.js 【发布时间】:2021-08-19 15:30:12 【问题描述】:PS G:\boot> 节点 hello.js 在 http://localhost:3000 监听的示例应用程序 G:\boot\node_modules\mysql\lib\protocol\Parser.js:437 抛出错误; // 重新抛出非 MySQL 错误 ^
错误:ER_BAD_DB_ERROR:未知数据库“启动” 在 Handshake.Sequence._packetToError (G:\boot\node_modules\mysql\lib\protocol\sequences\Sequence.js:47:14) 在 Handshake.ErrorPacket (G:\boot\node_modules\mysql\lib\protocol\sequences\Handshake.js:123:18) 在 Protocol._parsePacket (G:\boot\node_modules\mysql\lib\protocol\Protocol.js:291:23) 在 Parser._parsePacket (G:\boot\node_modules\mysql\lib\protocol\Parser.js:433:10) 在 Parser.write (G:\boot\node_modules\mysql\lib\protocol\Parser.js:43:10) 在 Protocol.write (G:\boot\node_modules\mysql\lib\protocol\Protocol.js:38:16) 在套接字。 (G:\boot\node_modules\mysql\lib\Connection.js:88:28) 在套接字。 (G:\boot\node_modules\mysql\lib\Connection.js:526:10) 在 Socket.emit (events.js:376:20) 在 addChunk (internal/streams/readable.js:309:12) -------------------- 在 Protocol._enqueue (G:\boot\node_modules\mysql\lib\protocol\Protocol.js:144:48) 在 Protocol.handshake (G:\boot\node_modules\mysql\lib\protocol\Protocol.js:51:23) 在 Connection.connect (G:\boot\node_modules\mysql\lib\Connection.js:116:18) 在对象。 (G:\boot\hello.js:22:12) 在 Module._compile (internal/modules/cjs/loader.js:1068:30) 在 Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10) 在 Module.load (internal/modules/cjs/loader.js:933:32) 在 Function.Module._load (internal/modules/cjs/loader.js:774:14) 在 Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12) 在内部/main/run_main_module.js:17:47 代码:'ER_BAD_DB_ERROR', 错误号:1049, sqlMessage: "未知数据库'启动'", sqlState: '42000', 致命:真实
代码是
const express = require('express')
var mysql = require('mysql')
const bodyParser = require('body-parser')
const app = express()
const port = 3000
// app.use(express.static('css'))
app.use(bodyParser.urlencoded( extended: false ))
app.set('view engine', 'pug')
app.get('/', function (req, res)
res.sendFile('signup.html', root: __dirname )
);
var connection = mysql.createConnection(
host: 'localhost',
user: 'root',
password: '',
database: 'boot'
);
connection.connect(function (err)
if (err) throw err;
console.log('Connected.........')
)
connection.end();
app.post('/submit', function (req, res)
console.log(req.body);
res.render('index',
title: 'Data saved',
message: 'Data saved successfully'
)
)
app.listen(port, () =>
console.log(`Example app listening at http://localhost:$port`)
)
```[enter image description here][1]
[1]: https://i.stack.imgur.com/hRNXp.png
【问题讨论】:
sqlMessage
正是它所说的。没有boot
数据库。
@danblack phpmyadmin 中有boot
数据库。在此创建了一个表。
【参考方案1】:
ER_BAD_DB_ERROR: Unknown database 'boot
错误是从您的 MySQL 服务器返回的。这意味着您在本地托管的 MySQL 服务器没有名称为 boot
的数据库,或者 root
用户无权访问该数据库。
建议您在重新运行应用之前仔细检查您是否已使用 boot
名称启动数据库
【讨论】:
其他以前创建的数据库显示相同的错误。用户名root
也是正确的
您可以尝试删除database
参数并查看新的错误吗?
你是否也可以尝试在选项中添加端口,你可能没有使用默认端口进行数据库连接
现在我知道问题所在了。我正在使用 wampp ,所以在 wampp 我有 2 个服务器,即MySql
和 MariaDB
。连接到 mariaDB 而不是 Mysql。如果您看到代码,它是 var connection = mysql.createConnection 而不是 MariaDB。它仍然连接到 MariaDB。帮我解决这个问题以上是关于通过 node.js 连接到 mysql 时出现未知数据库错误的主要内容,如果未能解决你的问题,请参考以下文章
尝试将客户端连接到服务器时出现Node.js Socket.io错误
尝试将 node.js unix 套接字客户端连接到 C 程序时出现 EPROTOTYPE 错误
从 Heroku 上的 Node.js 连接到 CloudSQL
无法连接到 mySQL 服务器,Windows 10/Node.js