참고로 나는 이 두 에러가 스벅의 부실한 와이파이 때문이었음..
응아니고 mariadb 실행안해서였음요!! 기존에 쓰던 mysql는 초기설정으로 자동실행되게 설정해놓은 거라 마리아디비는 쓸라면 실행해줘야됐음!!!!!! ()
ConnectionError [SequelizeConnectionError]: connect ETIMEDOUT
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
+자동실행되는 설정
db연결하는 법
mysql과 같음 이 코드 mysql연결하는거 보고 한거임(시퀄라이즈가 다른 sql데이터베이스들도 호환가능해서)
출처는 책임 | Node.js 교과서 | 조현영 p.315
package.json에 npm start하기 위해 넣기
start 노드몬 앱 넣기
시작할거를 main에 app.js로
{
"name": "4th-project-yunminblock",
"version": "1.0.0",
"description": "소윤이 보아라",
"main": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "nodemon app"
},
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.17.2",
"morgan": "^1.10.0",
"mysql2": "^2.3.3",
"nunjucks": "^3.2.3",
"sequelize": "^6.13.0",
"sequelize-cli": "^6.3.0",
},
"devDependencies": {
"nodemon": "^2.0.15"
}
}
시퀄라이즈에 필요한 모듈패키지설치
npm i express morgan nunjucks sequelize sequelize-cli mysql2
npm i -D nodemon
설치 완료 후
npx sequelize init
하면
config, models, migrations, seeders폴더가 생성됨
models폴더 안에는 index.js가 있음
index.js 를 이렇게 수정고우
const Sequelize = require("sequelize");
const env = process.env.NODE_ENV || "development";
const config = require(__dirname + "/../config/config.json")[env];
const db = {};
//기존
const sequelize = new Sequelize(
config.database,
config.username,
config.password,
config
);
db.sequelize = sequelize;
module.exports = db;
이제 시퀄라이즈 통해 express앱과 mysql연결할거임
app.js 파일 만들고 안에 코드 넣기
const express = require("express");
const path = require("path");
const morgan = require("morgan");
const nunjucks = require("nunjucks");
const { sequelize } = require("./models");
const app = express();
app.set("port", process.env.PORT || 3307);
app.set("view engine", "html");
nunjucks.configure("views", {
express: app,
watch: true,
});
sequelize
.sync({ force: false })
.then(() => {
console.log("데이터베이스 연결성공");
})
.catch((err) => {
console.log(err);
});
app.use(morgan("dev"));
app.use(express.static(path.join(__dirname, "public")));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use((req, res, next) => {
const error = new Error(`${req.method} ${req.url} 라우터가 없습니다.`);
error.status = 404;
next(error);
});
app.use((err, req, res, next) => {
res.locals.message = err.message;
res.locals.error = process.env.NODE_ENV !== "production" ? err : {};
res.status(err.status || 500);
res.render("error");
});
app.listen(app.get("port"), () => {
console.log(app.get("port"), "번 포트에서 대기중");
});
마리아db포트가 3307로 되어 있어서 이렇게 했는데
사실 상관없는거같긴함 (서버는 계속 헷갈리는데 db서버가 3307포트인건 알겠고 여기서 넣는 포트는 아마 localhost:로 화면에 띄워주는 포트라고 이해함요..네.. )
이제 중요한거.
config 내용임!!!
나는 마리아 디비쓰니까 그 유저네임이랑 그 비번 그 host로 적어줘야 한다
마리아 디비의 port랑
그래서 이렇게 했다
{
"development": {
"username": "mariatest",
"password": "1234",
"database": "mariadb",
"host": "localhost",
"dialect": "mysql",
"port": "3307"
},
"test": {
"username": "mariatest",
"password": "1234",
"database": "database_test",
"host": "0.0.0.0",
"dialect": "mysql"
},
"production": {
"username": "mariatest",
"password": "1234",
"database": "database_production",
"host": "0.0.0.0",
"dialect": "mysql"
}
}
아마 두세번째 애들은 상관없을듯 혹시나 해서 저렇게 넣어둔거임
이제 npm start하면 끝!!!
사실 위에도 말했지만 나는 연결안된다고 에러떴었음
ConnectionError [SequelizeConnectionError]: connect ETIMEDOUT
at ConnectionManager.connect
암튼 이거 몰라서 mariadb들어가서 확인해보려는데 접근이 안됨
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
sudo service mysql restart
이것도 해보고 계속 안되다가
+아냐 이게 실행이야 이거 하니까 된거임!!
sudo mysql -u root -p
로 하니까 들어가짐
들어가서 문제 있나 확인함
흠... config랑 비교해봄
user mariatest 인지 host localhost로 되어있나..
npm start했을 때 db없다길래
npx sequelize db:create
로 생성하고
실행
npm start
안에도 잘있군
얏호
[Linux] wsl 환경에서 로그인,회원가입 만들기(+nginx)
wsl 환경에서 node.js+react(+nginx)를 활용해 웹페이지를 만들어 보면서 ubuntu 환경에서 서버를 어떻게 구축하는지에 대한 감을 익히고 서버 구성에 대해 알아볼 것이다.📢본 작업은 wsl상에서 서버를
velog.io
'블록체인' 카테고리의 다른 글
바보같네 몰랐어요~ (마리아db 서버 실행) (0) | 2022.01.16 |
---|---|
블록체인 채굴, p2p서버통신, 블록업데이트 완료 (코드 적어놓고 정리) (0) | 2022.01.12 |
블록체인 p2p라면서 httpServer는 왜 쓰는 걸까에 대한 나름의 이해.. (0) | 2022.01.06 |
블록체인 httpserver 서버구축, blocks 띄우기(제네시스 블록/get post차이 이해함요) (0) | 2022.01.06 |
git error 해결 [Unable to merge unrelated histories in this repository] (0) | 2022.01.06 |