-
Notifications
You must be signed in to change notification settings - Fork 3
Azure Web App Server와 MySQL 서버 연결하기
-
Azure로 DB 구축하기 를 참고해서 DB서버 생성 후, mysql에 연동시킨다. (맨 아래의 예제 코드넣는 부분은 할 필요없음!!)
-
연동한 후, 새로운 데이터 베이스를 생성한다.
CREATE DATABASE `[DB이름]`;
-
cmd
에서, 다음을 실행한다.cd 프로젝트 폴더 npm install mysql
Visual Studio Code에서 React 프로젝트를 Open하고,
-
server
폴더를 생성한다. -
server
폴더 안에server.js
파일을 만든다.
그 후, 다음 예제 코드를 복사해 붙여넣기한다.
-
여기서,
config
의host
,user
,password
는 시작하기 전에 만든 DB서버의 것들을 붙여넣는다. -
그리고
database
부분에는 mysql workbench에서 생성한 DB이름을 넣으면 된다.
const mysql = require('mysql');
var config =
{
host: 'mydemoserver.mysql.database.azure.com',
user: 'myadmin@mydemoserver',
password: 'your_password',
database: 'quickstartdb',
port: 3306,
ssl: false
};
const conn = new mysql.createConnection(config);
conn.connect(
function (err) {
if (err) {
console.log("!!! Cannot connect !!! Error:");
throw err;
}
else
{
console.log("Connection established.");
queryDatabase();
}
});
function queryDatabase(){
conn.query('DROP TABLE IF EXISTS inventory;', function (err, results, fields) {
if (err) throw err;
console.log('Dropped inventory table if existed.');
})
conn.query('CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);',
function (err, results, fields) {
if (err) throw err;
console.log('Created inventory table.');
})
conn.query('INSERT INTO inventory (name, quantity) VALUES (?, ?);', ['banana', 150],
function (err, results, fields) {
if (err) throw err;
else console.log('Inserted ' + results.affectedRows + ' row(s).');
})
conn.query('INSERT INTO inventory (name, quantity) VALUES (?, ?);', ['orange', 154],
function (err, results, fields) {
if (err) throw err;
console.log('Inserted ' + results.affectedRows + ' row(s).');
})
conn.query('INSERT INTO inventory (name, quantity) VALUES (?, ?);', ['apple', 100],
function (err, results, fields) {
if (err) throw err;
console.log('Inserted ' + results.affectedRows + ' row(s).');
})
conn.end(function (err) {
if (err) throw err;
else console.log('Done.')
});
};
그 다음,
cmd
에서
cd server
node server.js
실행하면, cmd화면에는 다음과 같은 로그가 찍힌다.
그리고 mysql workbench에서 확인해보면, Table이 생성되고 값들이 Insert된 것을 확인할 수 있다.
여기까지 DB서버와 통신하는 방법을 알아보았고, 이제 Wep App을 배포해서 DB서버와 연동을 해 볼 예정!
로컬에 있는 React 프로젝트를 배포하기 위해서 필요한 Tool을 설치해야함!
Visual Studio Code
의 Extension
에서 Azure Tools
를 설치
설치가 완료되면 Azure 아이콘이 생성 되는데, 이걸 클릭하면, 아래와 같은 화면이 나온다. 빨간 박스쳐진 Deploy to Web app
을 클릭하면 Web App을 생성할 수 있다.
이 부분에서는 배포하고자 하는 프로젝트 폴더를 선택한다. Browse
를 눌러 다른 폴더를 선택 할 수도 있고, 현재 Visual Studio Code
에 열려있는 폴더를 선택할 수 있다.(예시에서는 main_page
폴더가 열려있는 상태여서 목록에 뜬것!)
이제부터는 계속 따라하면 된다.
여기서는 Web App의 이름을 정하는데, 이세상에 단 하나뿐인 이름을 써야하는것 주의!
여기서는 리소스 그룹을 생성하는 부분인데, 같이 관리해야하는 프로젝트는 같은 그룹에 넣는것이 좋다. 처음 만드는 것이라면 Create new resource group
을 선택하여 새로운 리소스그룹을 만들어 진행한다.
Node.js를 사용하여 프로젝트를 진행하기 때문에, Node 14 LTS
를 선택하면된다.
Linux
를 선택해야 하는데, Azure 홈페이지에서도 Windows
를 선택해서 Web App을 생성하면 아래에서 나올 서비스플랜이 없다는 메시지가 뜨면서 에러가 난다.
쭉 따라하면
Yes
를 클릭하면 배포가 시작된다.
배포가 완료되면, APP SERVICE
항목에 배포한 Web App이 보여지고, 마우스 우클릭
-Browse Website
를 클릭하면 배포한 웹페이지를 확인할 수 있다.