Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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
我无法使用node.js连接到mysql数据库_Mysql_Node.js_Database - Fatal编程技术网

我无法使用node.js连接到mysql数据库

我无法使用node.js连接到mysql数据库,mysql,node.js,database,Mysql,Node.js,Database,我是数据库的初学者。 我正在使用端口为9090的localhost(127.0.0.1)。 我成功地创建了mysql数据库,在Windows10命令提示符和mysql工作台中运行/使用了它 但当我尝试使用node.js运行它时,我无法连接到服务器 下面是我试图在windows命令行中运行的index.js文件 var mysql = require('mysql'); var client = mysql.createConnection({ user:'root', passw

我是数据库的初学者。 我正在使用端口为9090的localhost(127.0.0.1)。 我成功地创建了mysql数据库,在Windows10命令提示符和mysql工作台中运行/使用了它

但当我尝试使用node.js运行它时,我无法连接到服务器

下面是我试图在windows命令行中运行的index.js文件

var mysql = require('mysql');
var client = mysql.createConnection({
    user:'root',
    password:'password',
});
client.query('USE mydb');
client.query('SELECT * FROM PRODUCTS',function(error, result, fields){
if(error){
    console.log(error);
} else{
    console.log(result);
}
});
这导致了这个错误

D:\Coding\VSCode\nodejs>node index.js

Error: connect ECONNREFUSED 127.0.0.1:3306
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16)
--------------------
at Protocol._enqueue (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\protocol\Protocol.js:144:48)
at Protocol.handshake (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\protocol\Protocol.js:51:23)
at Connection.connect (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\Connection.js:116:18)
at Connection._implyConnect (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\Connection.js:454:10)
at Connection.query (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\Connection.js:196:8)
at Object.<anonymous> (D:\Coding\VSCode\nodejs\index.js:10:8)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14) {
errno: -4078,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 3306,
fatal: true
}
D:\Coding\VSCode\nodejs>node index.js

Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by 
server; consider upgrading MySQL client
at Handshake.Sequence._packetToError 
(D:\Coding\VSCode\nodejs\node_modules\mysql\lib\protocol\sequences\Sequence.js:47:14)
at Handshake.ErrorPacket 
(D:\Coding\VSCode\nodejs\node_modules\mysql\lib\protocol\sequences\Handshake.js:123:18)
at Protocol._parsePacket (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\protocol\Protocol.js:291:23)
at Parser._parsePacket (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\protocol\Parser.js:433:10)
at Parser.write (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\protocol\Parser.js:43:10)
at Protocol.write (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\protocol\Protocol.js:38:16)
at Socket.<anonymous> (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\Connection.js:88:28)
at Socket.<anonymous> (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\Connection.js:526:10)
at Socket.emit (events.js:315:20)
at addChunk (_stream_readable.js:309:12)
--------------------
at Protocol._enqueue (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\protocol\Protocol.js:144:48)
at Protocol.handshake (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\protocol\Protocol.js:51:23)
at Connection.connect (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\Connection.js:116:18)
at Connection._implyConnect (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\Connection.js:454:10)
at Connection.query (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\Connection.js:196:8)
at Object.<anonymous> (D:\Coding\VSCode\nodejs\index.js:10:8)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14) {
code: 'ER_NOT_SUPPORTED_AUTH_MODE',
errno: 1251,
sqlMessage: 'Client does not support authentication protocol requested by server; consider upgrading 
MySQL client',
sqlState: '08004',
fatal: true
}
然后我得到了这个错误

D:\Coding\VSCode\nodejs>node index.js

Error: connect ECONNREFUSED 127.0.0.1:3306
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16)
--------------------
at Protocol._enqueue (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\protocol\Protocol.js:144:48)
at Protocol.handshake (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\protocol\Protocol.js:51:23)
at Connection.connect (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\Connection.js:116:18)
at Connection._implyConnect (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\Connection.js:454:10)
at Connection.query (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\Connection.js:196:8)
at Object.<anonymous> (D:\Coding\VSCode\nodejs\index.js:10:8)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14) {
errno: -4078,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 3306,
fatal: true
}
D:\Coding\VSCode\nodejs>node index.js

Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by 
server; consider upgrading MySQL client
at Handshake.Sequence._packetToError 
(D:\Coding\VSCode\nodejs\node_modules\mysql\lib\protocol\sequences\Sequence.js:47:14)
at Handshake.ErrorPacket 
(D:\Coding\VSCode\nodejs\node_modules\mysql\lib\protocol\sequences\Handshake.js:123:18)
at Protocol._parsePacket (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\protocol\Protocol.js:291:23)
at Parser._parsePacket (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\protocol\Parser.js:433:10)
at Parser.write (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\protocol\Parser.js:43:10)
at Protocol.write (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\protocol\Protocol.js:38:16)
at Socket.<anonymous> (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\Connection.js:88:28)
at Socket.<anonymous> (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\Connection.js:526:10)
at Socket.emit (events.js:315:20)
at addChunk (_stream_readable.js:309:12)
--------------------
at Protocol._enqueue (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\protocol\Protocol.js:144:48)
at Protocol.handshake (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\protocol\Protocol.js:51:23)
at Connection.connect (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\Connection.js:116:18)
at Connection._implyConnect (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\Connection.js:454:10)
at Connection.query (D:\Coding\VSCode\nodejs\node_modules\mysql\lib\Connection.js:196:8)
at Object.<anonymous> (D:\Coding\VSCode\nodejs\index.js:10:8)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14) {
code: 'ER_NOT_SUPPORTED_AUTH_MODE',
errno: 1251,
sqlMessage: 'Client does not support authentication protocol requested by server; consider upgrading 
MySQL client',
sqlState: '08004',
fatal: true
}
D:\Coding\VSCode\nodejs>node index.js
错误:ER\u不受支持\u身份验证模式:客户端不支持请求的身份验证协议
服务器;考虑升级MySQL客户端
握手时。顺序。_packetToError
(D:\Coding\VSCode\nodejs\node\u modules\mysql\lib\protocol\sequences\Sequence.js:47:14)
在握手时
(D:\Coding\VSCode\nodejs\node\u modules\mysql\lib\protocol\sequences\Handshake.js:123:18)
at Protocol.\u parsePacket(D:\Coding\VSCode\nodejs\node\u modules\mysql\lib\Protocol\Protocol.js:291:23)
在Parser.\u parsePacket(D:\Coding\VSCode\nodejs\node\u modules\mysql\lib\protocol\Parser.js:433:10)
在Parser.write(D:\Coding\VSCode\nodejs\node\u modules\mysql\lib\protocol\Parser.js:43:10)
在Protocol.write(D:\Coding\VSCode\nodejs\node\u modules\mysql\lib\Protocol\Protocol.js:38:16)
在插座上。(D:\Coding\VSCode\nodejs\node\u modules\mysql\lib\Connection.js:88:28)
在插座上。(D:\Coding\VSCode\nodejs\node\u modules\mysql\lib\Connection.js:526:10)
在Socket.emit(events.js:315:20)
在addChunk(_stream_readable.js:309:12)
--------------------
at协议。\排队(D:\Coding\VSCode\nodejs\node\u modules\mysql\lib\Protocol\Protocol.js:144:48)
在Protocol.handshake(D:\Coding\VSCode\nodejs\node\u modules\mysql\lib\Protocol\Protocol.js:51:23)
在Connection.connect(D:\Coding\VSCode\nodejs\node\u modules\mysql\lib\Connection.js:116:18)
连接时。\u implyConnect(D:\Coding\VSCode\nodejs\node\u modules\mysql\lib\Connection.js:454:10)
在Connection.query(D:\Coding\VSCode\nodejs\node\u modules\mysql\lib\Connection.js:196:8)
反对。(D:\Coding\VSCode\nodejs\index.js:10:8)
at模块编译(内部/modules/cjs/loader.js:1063:30)
在Object.Module._extensions..js(internal/modules/cjs/loader.js:1092:10)
在Module.load(内部/modules/cjs/loader.js:928:32)
at Function.Module._load(内部/modules/cjs/loader.js:769:14){
代码:“ER\u不受支持\u身份验证模式”,
编号:1251,
SqMeMe:客户端不支持服务器请求的认证协议,考虑升级
MySQL客户端',
sqlState:'08004',
致命的:真的
}

1.打开windows终端并登录:
mysql-uroot-p
(然后键入密码)

  • 使用mysql

  • updateuser set authentication\u string=password(“”),plugin='mysql\u native\u password'where user='root'


  • 4重新启动mysql数据库:
    sudo服务mysql Restart

    在mysql工作台中执行此操作解决了问题

     ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password 
     BY 'YourRootPassword';
    
     FLUSH PRIVILEGES;
    

    @Godofcode,检查这个链接,也许你们可以得到解决方案谢谢,我刚刚从其他来源也找到了答案。