mysql을 설치후 nodejs 환경에서 시퀄라이즈로 마이그레이션하려고 명령어를 입력했다.
> npx sezuelize-cli db:migrate
config 파일안에 mysql 비밀번호도 정확히 입력했고 DB 이름부터 설정을 정확하게 하였지만 아래와 같은 오류가 계속 나타났다.
<config.js>
const dotenv = require('dotenv');
dotenv.config();
module.exports = {
development: {
username: 'root',
password: process.env.DATABASE_PASSWORD,
database: 'authentication',
host: '127.0.0.1',
dialect: 'mysql',
logging: false
},
test: {
username: 'root',
password: process.env.DATABASE_PASSWORD,
database: 'authentication',
host: '127.0.0.1',
dialect: 'mysql',
},
production: {
username: 'root',
password: process.env.DATABASE_PASSWORD,
database: 'authentication',
host: '127.0.0.1',
dialect: 'mysql',
},
};
<error message>
Error: ER_ACCESS_DENIED_ERROR: Access denied for user ''@'localhost' (using password: NO)
using passwrd가 no인것은 애초에 비밀번호 입력이 되지않았다는 것이고 yes같은 경우 틀린 비밀번호를 입력하면 나타난다. 그래서 구글에 찾아보니 mysql의 root계정 의 패스워드 타입때문인데 이 타입을 바꿔줘야한다.
우선 mysql을 USE한 다음 SELECT User, HOST, plugin을 mysql.user로 부터 확인해보자.
mysql> USE mysql;
mysql> SELECT User, Host, plugin FROM mysql.user;
확인 결과 User중 root의 plugin이 auth_socket으로 되어 있는데 이를 mysql_native_password로 변경해주어야 일반적인 로그인이 가능해지게 된다.
mysql> update user set plugin='mysql_native_password' where user='root';
mysql> flush privileges;
이후 다시 select로 잘 변경되었는지 확인한 뒤 exit를 하자. mysql -u root -p로 패스워드 입력후 잘 접속 되나 확인한 뒤
다시 시퀄라이즈로 마이그레이션을 하는 명령어를 입력해보자.
'개발 학습 > 데이터베이스' 카테고리의 다른 글
Express와 몽고DB 연결 / DB 테이블 컬럼 생성 / CRUD (0) | 2022.01.14 |
---|
댓글