programing

Windows에서 MariaDB와 NodeJs에 액세스하는 방법

shortcode 2022. 11. 6. 16:27
반응형

Windows에서 MariaDB와 NodeJs에 액세스하는 방법

Windows용 MariaDB 10.3을 다운로드하여 데이터베이스를 만들고 노드에서 연결을 시도했습니다.JS 서버 사용mysql도서관.

var mysql = require('mysql');
var con = mysql.createConnection({
  host: "localhost", 
  user: "root",
  password: "MariaDBPass",
  database:'DB_NAME',
});

con.connect(function(err) {
  if (err) throw err;
  console.log("Connected!");
  con.query(sql, function (err, result) {
    if (err) throw err;
    console.log("Result: " + result);
  });
});

Ubuntu에서 시도해보니 작동하지만 Windows에서는 sql 이외의 오류가 발생합니다.

Client does not support authentication protocol requested by server; consider upgrading MariaDB client

MySQL 8.0과 라이브러리가 호환되지 않을 수 있습니다.mysql) 이미 다음과 같이 사용자를 변경하려고 했습니다.

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'

라고 써있었어요

SQL 구문 오류가 있습니다.

어떻게 해결할지 생각나는 거 없어?

얼마나 도움이 될지는 모르겠지만 다음 설정을 사용합니다.

  • MariaDB 10.3 (x64)
  • Windows 10 Pro (빌드 17763)
  • mysql 모듈 v2.16.0.
  • Node.js v10.15.1

다음 코드는 예상대로 작동합니다.

var mysql = require('mysql');
var con = mysql.createConnection({
    host: "localhost", 
    user: "some_user",
    password: "some_password",
    database: 'testdb'
});

let sql = "select * from test_table";

con.connect(function(err) {
    if (err) throw err;
    console.log("Connected!");
    con.query(sql, function (err, result) {
        if (err) throw err;
        console.log("Result: " + JSON.stringify(result));
    });
});

다음과 같은 출력이 표시됩니다.

[{"id":1,"name":"Mike Smith"},{"id":2,"name":"Joe Brown"}]

작성한 사용자를 작성하려면(MariaDB mysql.exe 사용, root 사용자 사용)

use testdb;

create user 'some_user'@'localhost' identified by 'some_password';

grant all privileges on testdb.* to 'some_user'@'localhost';

이것은 조금 관대할 수 있지만, 접속 테스트에는 문제가 없습니다.

root 사용자와도 연결할 수 있습니다.

root 사용자 암호를 설정하려면 다음을 수행하십시오.

use mysql;

update user set password=PASSWORD('password') where user='root'and host='localhost';

flush privileges;

쿼리에 사용할 몇 개의 행이 있는 단순한 db 'testdb' 및 테이블 'test_table'을 만들었습니다.

가능하다면 당신의 mysql 모듈 버전을 업그레이드할 것을 제안합니다.또, Node.js 의 버전도 참조해 주세요.

언급URL : https://stackoverflow.com/questions/56457626/how-to-acces-mariadb-with-nodejs-on-windows

반응형