通过 node.js 连接到 mysql 时出现未知数据库错误

I'm getting unknown database error while connecting to mysql through node.js

提问人:boolean 提问时间:6/1/2021 最后编辑:boolean 更新时间:10/22/2023 访问量:6106

问:

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) 在 internal/main/run_main_module.js:17:47 { 代码: 'ER_BAD_DB_ERROR', 错误编号:1049, sqlMessage: “未知数据库'boot'”, sqlState: '42000', 致命:真 }

code 是

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}`)
)
MySQL node.js Express

评论

0赞 danblack 6/1/2021
这正是它所说的。没有数据库。sqlMessageboot
0赞 boolean 6/1/2021
@danblack phpmyadmin中有数据库。在此下创建了一个表。boot

答:

2赞 Ahmad Shahab 6/1/2021 #1

该错误是从您的 MySQL 服务器返回的。这意味着您在本地托管的MySQL服务器没有名称的数据库,或者用户无权访问该数据库。ER_BAD_DB_ERROR: Unknown database 'bootbootroot

建议在重新运行应用之前,仔细检查是否已使用该名称启动数据库boot

评论

0赞 boolean 6/1/2021
对于以前创建的其他数据库,它显示相同的错误。用户名也是正确的root
0赞 Ahmad Shahab 6/1/2021
您可以尝试删除参数并查看新错误吗?database
0赞 Ahmad Shahab 6/1/2021
您也可以尝试在选项中添加端口,您可能没有将默认端口用于数据库连接
0赞 boolean 6/1/2021
现在我知道问题所在了。我正在使用 wampp ,所以在 wampp 中我有 2 个服务器,即 .连接到mariaDB而不是Mysql。如果您看到代码,它是 var connection = mysql.createConnection 而不是 MariaDB。它仍然连接到MariaDB。帮帮我解决这个问题MySqlMariaDB