๐Ÿš€ Languege/Basic SQL

[MySQL 8.0] Nodejs ์—ฐ๋™ ์‹œ ์—๋Ÿฌ "Client does not support authentication protocol requested by server; consider upgrading MySQL client"

mini_world 2021. 3. 17. 19:00
๋ชฉ์ฐจ ์ ‘๊ธฐ

 

์•ผ๋ฌด์ง€๊ฒŒ ์„ค์น˜ํ•˜๊ณ  Nodejs์™€ ์—ฐ๋™ํ•˜๋ ค๊ณ  ํ•˜๋‹ˆ๊นŒ ๋ฐ”๋กœ ๋™‡ ์—๋Ÿฌ๊ฐ€ ๋‚˜์˜ค๋„ค์š”...๐Ÿ˜ญ๐Ÿ˜ญ๐Ÿ˜ญ๐Ÿ˜ญ๐Ÿ˜‚

 

1. ์ƒ˜ํ”Œ ์ฝ”๋“œ

์‚ฌ์šฉํ•œ ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. (์˜ˆ์ œ ๋งํฌ)

// test-mysql.js ํŒŒ์ผ
var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'host-IP',
  user     : 'root',
  password : 'Xptmxm1212!@',
  database : 'my-Database'
});

connection.connect();

connection.query('select * from sample_table', function (error, results, fields) {
  if (error){
    console.log(error);
  }
  console.log(results);
});

connection.end();

 

2. ์—๋Ÿฌ ๋‚ด์šฉ

 code: 'ER_NOT_SUPPORTED_AUTH_MODE',
  errno: 1251,
  sqlMessage: 'Client does not support authentication protocol requested by server; consider upgrading MySQL client',

Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
    at Handshake.Sequence._packetToError (/dir/node_modules/mysql/lib/protocol/sequences/Sequence.js:47:14)
    at Handshake.ErrorPacket (dir/node_modules/mysql/lib/protocol/sequences/Handshake.js:123:18)
    at Protocol._parsePacket (dir/node_modules/mysql/lib/protocol/Protocol.js:291:23)
    at Parser._parsePacket (dir/node_modules/mysql/lib/protocol/Parser.js:433:10)
    at Parser.write (dir/node_modules/mysql/lib/protocol/Parser.js:43:10)
    at Protocol.write (dir/node_modules/mysql/lib/protocol/Protocol.js:38:16)
    at Socket.<anonymous> (dir/node_modules/mysql/lib/Connection.js:88:28)
    at Socket.<anonymous> (dir/node_modules/mysql/lib/Connection.js:526:10)
    at Socket.emit (events.js:315:20)
    at addChunk (internal/streams/readable.js:309:12)
    --------------------
    at Protocol._enqueue (dir/node_modules/mysql/lib/protocol/Protocol.js:144:48)
    at Protocol.handshake (dir/node_modules/mysql/lib/protocol/Protocol.js:51:23)
    at Connection.connect (dir/node_modules/mysql/lib/Connection.js:116:18)
    at Object.<anonymous> (dir/nodejs/mysql.js:9:12)
    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)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
    at internal/main/run_main_module.js:17:47 {
  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
}

 

3. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

์ด ๋ฌธ์ œ๋Š” ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ์—์„œ mysql ํŒจ์Šค์›Œ๋“œ ํ”Œ๋Ÿฌ๊ทธ์ธ "caching_sha2_password"์„ ์†Œํ™”ํ•˜์ง€ ๋ชปํ•ด์„œ ์ƒ๊ธฐ๋Š” ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค.
ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์œ ์ €์˜ ํŒจ์Šค์›Œ๋“œ Plusin์„ ๋ฐ”๊ฟ”์ค์‹œ๋‹ค.

mysql์— ์ ‘์†ํ•˜์‹œ๊ณ , ์•„๋ž˜์™€ ๊ฐ™์ด ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

mysql>  ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Xptmxm1212!@';

 

์ˆ˜์ •์ด ์™„๋ฃŒ ๋˜์—ˆ๋‹ค๋ฉด, ์•„๋ž˜ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด Plugin์ด ๋ณ€๊ฒฝ๋˜์—ˆ์„๊ฑฐ์—์š” :)

mysql> SELECT Host,User,plugin,authentication_string FROM mysql.user;

 

์ด์ œ, ์‹คํ–‰ํ•˜๋ฉด ์ž˜ ๋ ๊ฑฐ์—์š”!! ๊ณ ๊ณ !!