Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 错误:ER_NO_DB_错误:在Node.js中没有选择数据库?_Mysql_Sql_Node.js_Express - Fatal编程技术网

Mysql 错误:ER_NO_DB_错误:在Node.js中没有选择数据库?

Mysql 错误:ER_NO_DB_错误:在Node.js中没有选择数据库?,mysql,sql,node.js,express,Mysql,Sql,Node.js,Express,我想从node.js服务器创建sql表。但是,我遇到了以下错误: (节点:13560)未处理的PromisejectionWarning:错误:ER_NO_DB_错误:未选择任何数据库 我试图补充:使用斯坦联合交易所 其中,stan_sehk是模式的名称。然而,我得到了另一个错误: (节点:12468)未处理的PromisejectionWarning:错误:ER_PARSE_错误:您的SQL语法有错误 问题是select语句可以工作,但create语句会出错。对于“创建视图支柱”也是如此 //

我想从node.js服务器创建sql表。但是,我遇到了以下错误:

(节点:13560)未处理的PromisejectionWarning:错误:ER_NO_DB_错误:未选择任何数据库

我试图补充:使用斯坦联合交易所 其中,stan_sehk是模式的名称。然而,我得到了另一个错误: (节点:12468)未处理的PromisejectionWarning:错误:ER_PARSE_错误:您的SQL语法有错误

问题是select语句可以工作,但create语句会出错。对于“创建视图支柱”也是如此

//MY db_config.json file

{
"mysql":{
  "host":  "localhost",
  "port": 3306,
  "acquireTimeout": 30000,
  "user": "appuser",
  "password" :  "abc123",
  "database": ""
},
  "redis":{
    "port"    : 6379,
    "host"    : "127.0.0.1"
  }
}
//我的mysql_access.js文件

const mysql = require('mysql');
const fs = require('fs');
const json = require('json');

const config_param = fs.readFileSync('./data_access/db_config.json', 'utf-8');
const config_param_json = JSON.parse(config_param);

const pool = mysql.createPool({
    host: config_param_json.mysql.host,
    port: config_param_json.mysql.port,
    acquireTimeout: config_param_json.mysql.acquireTimeout,
    user: config_param_json.mysql.user,
    password: config_param_json.mysql.password,
    dateStrings: true 
});

let query = function( sql, values) {
    return new Promise(( resolve, reject ) => {
        pool.getConnection(function(err, connection) {
            if (err) {
                reject( err )
            } else {
                connection.query(sql, values, ( err, rows) => {
                    if ( err ) {
                        reject( err )
                    } else {
                        resolve(JSON.parse(JSON.stringify(rows)))
                    }
                    connection.release()
                })
            }
        })
    })
};

module.exports = {query};
查询错误1:

let sql = `create table if not exists todos(
                      id int primary key auto_increment,
                      title varchar(255)not null,
                      completed tinyint(1) not null default 0
                  )`;
let sql_call = {
        sql: sql,
        sql_value: null
};


let sql_result = await mysql_access.query(sql_call.sql, sql_call.sql_value);
console.log(sql_result[11]);
错误消息:

(node:10640) UnhandledPromiseRejectionWarning: Error: ER_NO_DB_ERROR: No database selected
(node:12468) UnhandledPromiseRejectionWarning: Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'create table if not exists todos(id int primary key a' at line 1
查询错误2:

let sql = `use stan_sehk; create table if not exists todos(
                      id int primary key auto_increment,
                      title varchar(255)not null,
                      completed tinyint(1) not null default 0
                  )`;

let sql_call = {
         sql: sql,
         sql_value: null
};
let sql_result = await mysql_access.query(sql_call.sql, sql_call.sql_value);
console.log(sql_result[11]);
错误消息:

(node:10640) UnhandledPromiseRejectionWarning: Error: ER_NO_DB_ERROR: No database selected
(node:12468) UnhandledPromiseRejectionWarning: Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'create table if not exists todos(id int primary key a' at line 1

如果有什么事情我做得不对,请帮助我。正如我所说,SELECT查询可以工作,但CREATE查询会给出上述错误。非常感谢。

当您知道在给出正确的架构名称后可以选择数据,但CREATE语句有问题时,我觉得用户“appuser”存在权限相关问题。@mkRabbani感谢您的回复。我还认为这就是问题所在,但即使将用户更改为root用户也无法解决问题。在mysql workbench中,所有的查询都可以工作,甚至对于用户“appuser”。仍然无法理解出现该错误的原因。因为您知道在给出正确的架构名称后可以选择数据,但CREATE语句有问题,我觉得用户“appuser”存在权限相关问题。@mkRabbani感谢您的回复。我还认为这就是问题所在,但即使将用户更改为root用户也无法解决问题。在mysql workbench中,所有的查询都可以工作,甚至对于用户“appuser”。我仍然不明白为什么会发生这样的错误。