USE learnmysql
CREATE TABLE `user` (
`id` int PRIMARY KEY AUTO_INCREMENT,
`name` varchar(255) not NULL,
`email` varchar(255) not NULL
);
CREATE TABLE `content` (
`id` int PRIMARY KEY AUTO_INCREMENT,
`title` varchar(255) not NULL,
`body` varchar(255) not NULL,
`created_at` timestamp not NULL DEFAULT CURRENT_TIMESTAMP,
`userId` int,
FOREIGN KEY (`userId`) REFERENCES `user` (`id`)
);
node.js를 활용해 데이터베이스를 생성한뒤 위 두개의 테이블을 만들어 연동을하려 하였으나
"Client does not support authentication protocol requested by server; consider upgrading MySQL client'"
로 에러가 나왔다.
SELECT Host,User,plugin,authentication_string FROM mysql.user;
을 mysql에 입력한결과 내가 사용하는 root의 plugin이 "caching_sha2_password" 인것을 확인했다.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '사용할 비밀번호';
를 입력한 결과
root의 plugin이 바뀐것을 확인했다.
결론적으로 해결되지 않았다.
아직까지 Node.js와 연동자체가 성립되지 않았으며 에러는 여전히 그대로 였다.
$brew services start mysql
위 사진에서 보다시피 brew로 mysql을 정지시키고 brew services list로 확인결과 mysql이 멈춰있는것을 알 수있다. 하지만 mysql.server start를 했지만 여전히 brew list에서는 mysql이 멈춰있는것을 확인했다.
TIP)mysql의 server가 정상적으로 작동하는지 확인하는방법
$ netstat -na | grep 3306 //MySQL의 포트번호는 3306 이므로, 서비스가 돌고 있다면 아래와 같이 3306의 서비스를 확인 할 수 있다.
위 명령어를 입력하면 밑의 사진과 같이 서버가 정상적으로 작동하는것을 확인 할 수 있다.
이를 토대로
brew services start myslq
mysql.server start
위 두가지 명령어를 입력하였고 성공했다는 출력문을 본뒤 다시 서버연결 상태를 보았다.
결과적으로 출력이 잘 되었다.
확인은
mysql> show databases;
mysql> use learnmysql;
mysql> show tables;
로 확인을 하였고
결과는 성공적이었다.