일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- appendChild
- gethours
- classList
- Login
- 백준3052번
- javascropt
- LEFTJOIN
- Database
- node.js
- 자바스크립트
- JOIN
- 올바른괄호
- localstorage
- function
- sanitize-html
- 스택큐
- JavaScript#조건문#conditional
- JavaScript
- 웹개발종합반
- MySQL
- SQL
- padEnd
- 스파르타코딩클럽
- getMinutes
- 프로그래머스
- padStart
- 시간보여주기
- classname
- dateobject
- java기초
- Today
- Total
just do it
node.js-mysql(1) 본문
실습환경 갖추기
mysql에 실습데이터 입력하고
main.js가 위치하는 곳에서 npm install 해주기 => node_modules파일 생성됨
npm install 은 실행할 파일이 있는 곳에서 설치해주어야 한다. 다른 파일에서 실행시킬 main.js 가 있다면 그곳에서도 npm install 따로.. 필요한 라이브러리 불러오는 거니깡
json에서 dependencies를 살피고 필요한 sanitize-html을 위해 npm을 설치해준것
node.js mysql 모듈의 기본사용법(node.js에서 mysql동작시키기)
node.js 기본모듈중에 mysql 제어하는거 없음
npm 이용해서 mysql 설치하기
npm install mysql 을 콘솔창에 입력하기
npm install --save mysql
혹은 npm install -S mysql 는 mysql 을 dependencies에 추가해주는것도 해줌
아래 코드 입력한 mysql.js 만들고 node로 실행시키면 생성한 데이터를 개체형태로 보여줌
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
var mysql = require('mysql');//mysql모듈을 사용할게
// 비밀번호는 별도의 파일로 분리해서 버전관리에 포함시키지 않아야 합니다.
var connection = mysql.createConnection({
host : '127.0.0.1',//데이터베이스서버가 어떤컴퓨터에 있는가 노드와 my의 서버가 같은컴퓨터에 있으니 노드와같은주소
user : 'nodejs',
password : '111111',
database : 'open'
});
connection.connect();//만들어진 객체 connection에 connect라는 메소드를 호출하면 접속이 될거야
//접속이 끝나면 이 메소드 호출해서 sql문을 첫인자로주고 두번째인자로 콜백주면 첫인자인 sql이 서버에 전송되서 실행끝내고 응답
//으로 저 콜백함수 실행될거임
connection.query('SELECT * FROM topic', function (error, results, fields) {
if (error) {
console.log(error);
}
console.log(results);//이거 실행하면 토픽에저장된 데이터가 객체형태로 반환됨
});
connection.end();
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
var mysql = require('mysql');
// 비밀번호는 별도의 파일로 분리해서 버전관리에 포함시키지 않아야 합니다.
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '111111',
database : 'opentutorials'
});
connection.connect();
connection.query('SELECT * FROM topic', function (error, results, fields) {
if (error) {
console.log(error);
}
console.log(results);
});
connection.end();
|
cs |
그런데 위와같은 에러가 떳고...... localhost대신에 127.0.0.1 로 대체 해주었더니
이번엔 ACCESS DENIED ERROR가 뜸
selct * from user =>현재 들어와있는 데이터베이스에 있는 유저테이블을 찾음
select Host, User from mysql.user = > 현재 들어와있는 mysql 데이터베이스에 있는 유저테이블을 찾음, 여기서 host, user 컬럼만 가져오면 위와같이 나옴
위와같은 사용자 나옴
sql 새로운 계정만들기 (nodejs 이름으로)
1. 유저생성
mysql> create user 'nodejs' @ '%' IDENTIFIED BY '111111';
; 어디에서 접속하던 아이디가 nodejs면 이 사용자에 해당된단 뜻, 비번은 111111이다
%가 어디에서든을 의미, 따라서 %대신 localhost 입력할수도 있는거고
위와같이 nodejs 가 추가됨을 볼 수 있다
2. 생성된 유저에게 권한부여
1번까지하면 nodejs는 권한 없는 상태임, 이제 할수있는 일을 줌
mysql> GRANT ALL PRIVILEGES ON open.* TO 'nodejs'@'%';
'nodejs'@'%' 사용자에게 open데이터베이스에있는 모든테이블에 대한 모든 권한을 주겠다.
3. 권한을 반영
FLUSH PRIVILEGES ; 로 실제로 데이터베이스에 적용함
.
.
.
드디어 제대로 나옴을 확인 ..... !! !
data가 객체로 나옴을 확인할 수 있다.
host 자리에 localhost 입력하면 여전히 에러가난다.. 127.0.0.1 로 바꾸어야 함
'언어&프레임워크 > Node.js' 카테고리의 다른 글
mysql로 상세페이지구현 (0) | 2023.01.28 |
---|---|
mysql로 홈페이지구현(리스트부분) (0) | 2023.01.27 |
[Node.js]출력정보에 대한 보안(sanitize-html) (0) | 2023.01.18 |
[Node.js]입력 정보에 대한 보안 (0) | 2023.01.17 |
[Node.js]모듈의 활용 (0) | 2023.01.17 |