Node.js - MySQL

Node.js MySQL 모듈의 기본 사용방법

수업소개

Node.js의 MySQL 모듈의 기본적인 사용방법을 알아봅니다. 

Node.js MySQL 모듈 바로가기

npm install -S mysql

 

 

 

강의

 

 

 

소스코드

nodejs/mysql.js

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();

 

댓글

댓글 본문
작성자
비밀번호
  1. 굼벵이
    완료
  2. CronEB
    done
  3. host가 localhost가 아니라 root로 다 뜨는데 ,,,뭐가 문제져
  4. 감사합니다!! 덕분에 해결되었습니다!
    대화보기
    • johnAhn
      'Client does not support authentication protocol requested by server; consider upgrading MySQL client' 이런 에러 발생하면 아래의 스택오버플로우 내용 참조하셔서 변경하시면 됩니다.

      https://stackoverflow.com......ver
    • sanghak.lee
      Client does not support authentication protocol requested by server; consider upgrading MySQL client
      이런 오류가 떠서 구글링해봤더니 테이블 데이터를 바꿔주라고 되어 있는데 바꿔도 계속 이런 오류가 뜹니다 ㅜㅜ
    • 포트번호 설정하니까 한번에 해결됐어요! 감사합니다 :)
      대화보기
      • 키리모찌
        AUTH_MODE에러가 나시는 분들은
        https://stackoverflow.com......951

        확인해보세요.
      • 이예에에에
        감사합니다!!!!
        대화보기
        • 와이에스
          <인증실패로 접속이 안되는 분들 참고하세요>
          MySQL 8.0에서는 사용자 인증방법이 caching_sha2_password만 사용하게 되었기 때문에
          강제로 mysql_native_password를 사용하게 바꿔주던지, caching_sha2_password를 지원하는 connector를 사용해야 합니다. 인증방법을 새버전에서 지원하지 않는 구버전의 인증방법으로 바꾸는 것은 보안상 좋지 않은 방법이라고 합니다. 그래도 공부하실때는 쉽게 접속이 가능하니 참고하시기 바랍니다. java쪽은 지원 커넥터들이 나왔있다고 하는데 검색해서 찾아보시면 될것 같네요 PHP는 아직 없는것 같아서 힘들었습니다만,,,, 그래도 인증방법을 바꾸는게 더 쉽죠. ㅋㅋㅋ
          도움이 되셨길 바랍니다.

          <1번방법 : root계정의 인증방법 강제로 바꿈>
          ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourRootPassword';

          <2번방법 : 새로운 유저를 만들어 인증방법을 구버전을 적용하도록 함>
          CREATE USER 'newUser'@'%' IDENTIFIED WITH mysql_native_password BY 'YourUserPassword';
          GRANT ALL PRIVILEGES ON opentutorials.* TO 'newUser'@'%';
          FLUSH PRIVILEGES;
        • AfterMemory2019
          혹시

          npm install -S mysql

          이 구문 안치셧나요? 오류 메세지를 보니까 node.js에 mysql 모듈이 설치되지 않은듯 합니당
          대화보기
          • 최지현
            자바 스크립트 파일에서요. 함수 생성하고 mysql모듈 불러왔는데요.
            createFunction: function(){
            var mysql = require('mysql');
            }

            Uncaught Error: Cannot find module 'mysql'
            이러한 오류가 계속 발생하네요 ㅠㅠ. npm -s mysql은 당연히 했고요. npm install까지 해서 확실히 node_moudules폴더에 모듈이 저장이 되었습니다.
            오류를 어떻게 해결해야 할까요? ㅠ
          • 권문수
            감사합니다^^ mysql 모니터와 노드.js 에서의 실행은 둘 다 똑같은 mysql 의 클라이언트로써의 작동을 알기위함이었군요. 클라이언트로써의 작업은 수동적인 모니터보다 노드js 쪽이 훨씬 좋다는걸 알았습니다. 감사합니다^^
          • 바람의밥심
            저는 연결은 잘 되는데...
            특정 데이타를 INSERT 할때 에러가 나오네요..

            SQL 실행 시 에러 발생함. - Error: ER_TRUNCATED_WRONG_VALUE_FOR_FIELD: Incorrect string value: '\xF0\x9F\x92\x9C' for column 'description' at row 2

            찾아보니 이모티콘과 같은 데이타를 넣기 위해서는 4byte 가 필요해서 utf8 이 아닌 utf8mb4 로 적용되어야 된다는데...
            아래와 같이 다 설정하고 mysql 내렸다가 올렸는데도 동열한 에러가 발생되네요...

            my.ini (윈도우에서 사용)
            [client]
            default-character-set = utf8mb4

            [mysql]
            default-character-set = utf8mb4

            [mysqld]
            character-set-client-handshake = FALSE
            character-set-server = utf8mb4
            collation-server = utf8mb4_unicode_ci
          • 나마코엘
            아.. 저도 한번에 안되네요..
            code: 'ER_ACCESS_DENIED_ERROR', 에러 메시지와 함께..
            mysql 계정을 localhost랑 %랑 127.0.0.1랑 각각 다 계정 만들고, 권한 부여하고 비번 재설정 해도 안되네요.
            toad 같은 툴로 연결하면 또 접속이 됩니다.
            결국엔
            mysql.js 파일의 host IP를 localhost 대신 실제 부여받은 IP로 입력하니 제대로 동작은 합니다.
            뭔가 권한이나 계정 정보 문제 같긴 한데 쉽게 해결되지가 않네요..
            일단.. 실제 IP 입력으로 진행해봐야겠어요.. ㅜㅜ 아 찝찝..

            ---------------------------------
            다음날 환경 요소 확인해보니 mysql에 2개 띄워져 있어서 발생하는 문제로 해결됨.
            클라이언트 툴은 원하는 mysql DB로 연결되었으나 nodejs 예제는 다른 mysql로 연결을 시도하여 발생.
          • 비전공자
            저는 mysql.js 파일 만들 때 입력하는 password랑 처음 mysql 설치하면서 만들었던 password가 일치하지 않아서 오류가 떴었네요.
            'Access denied for user \'root\'@\'localhost\' (using password: YES)',
            혹시 이런 오류 메시지 받았던 분들은 password 부분 수정해보세요~
          • http://www.yeezy-500.us.com
            http://www.redbottom-shoes.us.com
            http://www.cheap-airjordans.us.com
            http://www.filashoes.us.org
            http://www.nike-hyperdunk.us.com
            http://www.yeezyboost350v2.org.uk
            http://www.curry4.net
            http://www.yeezysshoes.us.com
            http://www.toryburchs.us
            http://www.chromeheartsoutletonline.com
            http://www.jordan11retro.us.com
            http://www.filashoes.org
            http://www.adidasstansmith.uk
            http://www.offwhitexjordan1.com
            http://www.air-max.us.com
            http://www.yeezy-boost.us.com
            http://www.yesyeezy.shop......tml
            http://www.jimmychoo-shoes.us.com
            http://www.nikeairmax2019.us.com
            http://www.hermes-handbags.us.com
            http://www.nikepolo.us
            http://www.outletlacoste.us.com
            http://www.fila-shoes.us.com
            http://www.goldengoosesneakers.us
            http://www.jordan13.us.com
            http://www.nikereact.org
            http://www.bapehoodie.us
            http://www.ferragamobelt.us
            http://www.adidasnmduk.com
            http://www.monclerjackets.us
            http://www.kyrieirving-shoes.us.com
            http://www.lacostepolo.us.com
            http://www.yesyeezy.shop......tml
            http://www.yeezy-shoes.us.org
            http://www.adidasyeezy.co.uk
            http://www.coachoutletstorefactory.com
            http://www.jordan4.us.com
            http://www.yeezy-boost350.us.com
            http://www.goyard.us.com
            http://www.hogan-outlet.us.com
            http://www.jordansshoes.us.org
            http://www.yslhandbags.net
            http://www.fitflops-saleclearance.us.com
            http://www.katespadehandbags-outlet.us.com
            http://www.yeezyboost350v2shoes.us.com
            http://www.adidas-tubular.us.com
            http://www.asics-shoes.us.org
            http://www.hermesbelts.com
            http://www.yesyeezy.shop......tml
            http://www.yeezyshoesuk.com
            http://www.nike-roshe.us.com
            http://www.nikejordans.us.com
            http://www.outletmichael-kors.us.com
            http://www.supremeclothing.us
            http://www.goyardbags.us
            http://www.adidas-crazyexplosive.us.com
            http://www.michael-kors-handbags.com.co
            http://www.adidasiniki.us
            http://www.yeezysshoes.org
            http://www.guccibelt.us.com
            http://www.kd11.us.com
            http://www.yesyeezy.shop
            http://www.hermesonlineshop.com
            http://www.longchamphandbags.co.uk
            http://www.lebron16.us
            http://www.hermes-birkin.us.com
            http://www.goldengoose.us.com
            http://www.yesyeezy.shop/supreme-x-nike-air-more-uptempo-varsity-redwhite-902290600-p-592.html
            http://www.kobesneakers.com
            http://www.coachoutletssale.com
            http://www.kd11.us
            http://www.nikeair-max.us.com
            http://www.hermeshandbags.us.org
            http://www.caterpillarboots.us.com
            http://www.airmax90.us.org
            http://www.coachoutlets.name
            http://www.offwhite.us.com
            http://www.yeezyboost-350v2.us.com
            http://www.adidassuperstar.us.com
            http://www.coachsonline.us.com
            http://www.yesyeezy.shop/adidas-yeezy-boost-350-v2-cream-white-cp9366-p-423.html
            http://www.jordan12.us.com
            http://www.golden-goose.us.com
            http://www.calvinkleinoutlet.us.com
            http://www.lebron16.us.com
            http://www.converseoutlet.us.com
            http://www.yesyeezy.shop/adidas-yeezy-boost-350-v2-beluga-solar-red-bb1826-p-422.html
            http://www.hardenshoes.us.com
            http://www.kobebasketballshoes.net
            http://www.goyardhandbags.org
            http://www.yeezy-boosts.us.com
            http://www.lebronjames-shoes.us.com
            http://www.nikebasketballshoes.us.com
            http://www.nike-shox.us.com
            http://www.balenciagashoes.us.com
            http://www.lebron15.net
            http://www.louboutinshoes.uk
            http://www.jordanshoes.org.uk
            http://www.yesyeezy.shop/balenciaga-17fw-triple-s-trainer-black-red-mens-w05m23972-p-613.html
            http://www.jordanssneakers.us.com
            http://www.balenciaga.us.com
            http://www.nikesneakers.us.com
            http://www.adidas-pureboost.us.com
            http://www.nike-airmax2017.us.com
            http://www.fakerolex.us.com
            http://www.nikeflyknit.us.com
            http://www.outletonline-michaelkors.us.org
            http://www.paulgeorgeshoes.us.com
            http://www.ultraboost.us.com
            http://www.adidasstansmith.us.com
            http://www.jordan-retro.us.com
            http://www.shoesjordan.us.com
            http://www.reebokoutlet.us.org
            http://www.russellwestbrookshoes.us.com
            http://www.yeezyboost-350.uk
            http://www.pandorabracelet.in.net
            http://www.airjordanretro.uk
            http://www.adidasyeezys.us.com
            http://www.outlettimberland.us.org
            http://www.kyrie4.org
            http://www.yesyeezy.shop/offwhite-air-jordan-1-retro-chicago-the-ten-aa3834101-p-837.html
            http://www.yesyeezy.shop/air-jordan-1-og-game-royal-blue-mens-555088403-p-682.html
            http://www.goldengooseoutlet.us
            http://www.valentinosshoes.us
            http://www.kyrie3.us.com
            http://www.nhljerseysshop.us.com
            http://www.nfljerseys.us.org
            http://www.coachoutletsfactory.com
            http://www.long-champ.us.com
            http://www.supremehoodie.us.com
            http://www.michael-kors-handbags.org.uk
            http://www.hermes-belt.us.com
            http://www.yeezy700.us.com
            http://www.nikefoamposite.us.com
            http://www.lebron16.net
            http://www.yesyeezy.shop/offwhite-x-nike-air-presto-black-aa3830002-p-291.html
            http://www.lacostepolosshirts.com
            http://www.yesyeezy.shop/adidas-yeezy-desert-rat-500-blush-db2908-p-425.html
            http://www.yeezysuk.com
            http://www.mbtshoesonline.com
            http://www.handbagsmichaelkors.com
            http://www.goyardhandbags.us.com
            http://www.adidasoutletonline.com
            http://www.chromehearts.com.co
            http://www.fila.us.org
            http://www.kevindurant-shoes.us.com
            http://www.vapormaxshoes.us
            http://www.michael--korsoutlet.us.org
            http://www.michaelkors-outletfactory.us.org
            http://www.chromehearts.name
            http://www.yesyeezy.shop/balenciaga-17fw-triple-s-black-pink-women-sneaker-483523w06e38080-p-618.html
            http://www.yeezyboost.in.net
            http://www.offwhiteclothing.us.com
            http://www.birkinbag.us.com
            http://www.hermesbelts.co.uk
            http://www.balenciagashoes.us.org
            http://www.bape-hoodie.us.com
            http://www.mlbjerseys.in.net
            http://www.vans-outlet.us.com
            http://www.jordan6.us.com
            http://www.michaeljordanshoes.us.com
            http://www.curry5.us.com
            http://www.polosralphlaurenuk.com
            http://www.curry4shoes.us.com
            http://www.adidasgazelle.us.com
            http://www.lacosteonlineshop.us.com
            http://www.goyard-handbags.us.com
            http://www.retro-jordans.us.com
            http://www.michael-korsoutlets.us
            http://www.goldengoose-outlet.us.com
            http://www.offwhitehoodie.us.com
            http://www.goldengoose-sneakers.com
            http://www.off-whiteshoes.us.com
            http://www.adidasyeezys.us
            http://www.kobe-shoes.us.com
            http://www.monclersoutlet.us.com
            http://www.ferragamobelt.us.org
            http://www.michaelkors-outletonlines.us.com
            http://www.nikecortez.us.com
            http://www.yeezy500.us
            http://www.adidasultraboost.us.org
            http://www.jordansforcheap.us.com
            http://www.canada-goose.in.net
            http://www.nikeairmax2018.us.com
            http://www.goldengoose-sneakers.us
            http://www.nikereact.us.com
            http://www.adidasnmds.us.com
            http://www.nikehuaracheshoes.us.com
            http://www.airmax270.us.com
            http://www.cheapnbajerseyswholesales.us.com
            http://www.nike-huarache.com
            http://www.adidasnmds.com
            http://www.yeezyboost.com.co
            http://www.nikeairforce1.us.com
            http://www.adidaseqts.com
            http://www.yeezy-shoes.org.uk
            http://www.yesyeezy.shop/nike-air-max-197-sean-wotherspoon-aj4219400-p-66.html
            http://www.adidasshoesonline.com
            http://www.kd-10.us
            http://www.longchampshandbags.us
            http://www.adidaszxflux.com
            http://www.monclerjacket.net
            http://www.rolex-replica.us.com
            wwwe
          • lc_h22
            code: 'ER_NOT_SUPPORTED_AUTH_MODE',
            errno: 1251,
            sqlMessage:
            'Client does not support authentication protocol requested by server; consider upgrading MySQL client'

            두번째 영상을 참고했는데두 요게 뜨네요..
            어떻게 해결 해야 하나요??ㅠㅠ
          • 5tarlight
            자꾸 접근이 거절되서 아래 영상보고도 거절되서 왜 그러지 했는데 포트를 3333으로 바꿔놨었다..!
          • 나나
            혹시 kill 하는 방법도 알려 주실 수 있을까요?
            대화보기
            • 일단시작하고본다
              혹시 아래 영상을 따라해도 오류가 나시는 분들은,
              윈도우 cmd 창에서 netstat -ano | findstr :3306 명령어를 수행해 보신 후에,
              3306 포트를 사용하는 프로세스가 2개 이상인지 확인해 보시길 바랍니다.
              2 개 이상이시라면 둘 중 하나를 kill 하시면 정상적으로 동작합니다.
              제가 이런 경우라서 왜 그런지 계속 찾다보니,
              그냥 mysql 과 bitnami wampstack 의 mysql 프로세스가 3306 포트를 동시에 사용하고 있었더라구요.
            • jo_onc
              감사합니다^^
              대화보기
              • jo_onc
                와우 MySQL을 nodejs로 컨트롤 가능하군요!
                엄청 편하네요!
                감사합니다~
              • 누누
                혹시 진행중에 'Error: ER_NOT_SUPPORTED_AUTH_MODE'가 발생하시는 분은
                https://stackoverflow.com......toc

                참고하시기 바랍니다.
              • piper
                감사합니다 덕분에 에러 해결했어요ㅎㅎ
                대화보기
                • 이고잉님 좋은강의감사합니다.
                  혹시나 설치 과정에서 mySQL 을 두번 설치하셨다거나 하셔서, port가 3306(기본설정), 3307 등 두개
                  이상 존재할 때는

                  mysql.js 에서

                  var connection = mysql.createConnection({
                  host: : 'localhost',
                  password : '설정된비밀번호',
                  user : 'root'
                  database : opentutorials,
                  //여기다가 아래와같이 추가로 port 설정을 해줍니다.
                  port : '3307'
                  });


                  mysql npm 설명서에 보면 여러가지 옵션을 넣을 수 있다고 나와있네요.
                  https://www.npmjs.com......sql
                • moon
                  감사합니다
                • 요시코
                  안되시는 분들 모두 힘내세요...!
                • egoing
                  지친 마음에 아래 글을 바칩니다.
                  https://opentutorials.org......209
                  대화보기
                  • 아뭉
                    에러 한개 고치면 한개 뜨고 그거 다시 고치면 다른거 하나 또 뜨고,ㅠ,ㅠㅠ,,,

                    node_modules 폴더와 package-lock.json 삭제 user - appdata - roaming 에서 npm 랑 npm cache 파일삭제하고 명령어로도 삭제하고

                    verify 명령어써서 확인하고

                    npm 다시설치 ,,동영상 다 따라한뒤
                    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass';
                    명령어 넣주니까 됐어요,,ㅠㅠㅠ,,,,하루종일 이것만했어요,,ㅠㅠ,,,ㅠ
                  • lazychoi
                    저는 두 번째 강의대로 했는데도 계속 에러가 발생해서 다음처럼 하니 에러가 사라지네요.

                    mysql> alter user 'nodejs'@'%' identified with mysql_native_password by '111111';
                  • 연수아빠
                    수강 완료!!
                  • Hyunki Yu
                    windows10 에서 npm install 사용시 4058 에러가 뜨시는 분들은 아래와 같이 해결하시면 됩니다.
                    1. node_modules 폴더와 package-lock.json 파일을 삭제한다.
                    2. cmd창에서 npm cache clear --force 명령어를 사용한다.
                    3. cmd창에서 npm init -y 를 사용한다.
                    4. package.json 파일이 정상적으로 생성되었으면 생활코딩 강좌에 나온 설치명령어를 쓴다.
                    대화보기
                    • Hyunki Yu
                      어디서 부터 놓친걸까요; NPM 설치가 안되네요...
                    버전 관리
                    egoing
                    현재 버전
                    선택 버전
                    graphittie 자세히 보기