MYSQL 설치 및 사용법 / 기본 CRUD 세팅 (ubuntu, node.js 이용)
ubuntu에서 node.js를 이용해 개발 중
DB 기능이 빠르게 필요할때 설치하고 사용하는 방법을 적어보았다.
1. mysql 설치
sudo apt-get install mysql-server
2. mysql 접속
sudo /usr/bin/mysql -u root -p
사용자 정보 확인
SELECT User, Host, authentication_string FROM mysql.user;
3. 데이터 베이스 생성 및 확인
CREATE DATABASE securea_wallpad_service;
SHOW DATABASES;
4. 테이블 생성 및 확인
CREATE TABLE user (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
phone_number VARCHAR(15),
building_hash VARCHAR(255) NOT NULL,
unit_number VARCHAR(255),
peerId VARCHAR(255),
is_authenticated BOOLEAN NOT NULL DEFAULT FALSE
);
SHOW TABLES;
5. 예시 데이터 추가
INSERT INTO user (name, password, phone_number, building_hash, unit_number, peerId, is_authenticated)
VALUES
('John Doe', 'password123', '123-456-7890', 'hash1', 'unit1', 'peerId1', TRUE),
('Jane Smith', 'pass456', '987-654-3210', 'hash2', 'unit2', 'peerId2', FALSE),
('Bob Johnson', 'testpass', '555-123-4567', 'hash3', 'unit3', 'peerId3', TRUE);
6. 테이블 안에 있는 데이터 확인하기
SELECT * FROM user;
참고) node.js 에서 만든 DB 접근하기
import * as mysql from 'mysql2';
// MySQL 연결 정보
const connection = mysql.createConnection({
host: '127.0.0.1', // 호스트 주소
user: 'root', // MySQL 계정 사용자명
password: '1234', // MySQL 계정 비밀번호
database: 'securea_wallpad_service' // 사용할 데이터베이스 이름
});
// MySQL 연결
connection.connect((err) => {
if (err) {
console.error('MySQL 연결 오류: ' + err.stack);
return;
}
console.log('MySQL 연결 ID: ' + connection.threadId);
});
// SELECT 쿼리 실행 예시
connection.query('SELECT * FROM user', (error, results, fields) => {
if (error) throw error;
// 쿼리 결과 출력
console.log('테이블 내용:', results);
});
// MySQL 연결 종료
connection.end((err) => {
if (err) {
console.error('MySQL 연결 종료 오류: ' + err.stack);
return;
}
console.log('MySQL 연결 종료');
});
연결종료 오류가 날경우 아래와 같이 해결
mysql을 처음 만들고 패스워드가 초기화 되지 않으면 접속을 할 수가 없다.
ubuntu@ip-10-0-1-50:~/jun/securea_server/microservice$ sudo node dbcommunicationtest.js
MySQL 연결 종료 오류: Error: Access denied for user 'root'@'localhost'
at Packet.asError (/home/ubuntu/jun/securea_server/microservice/node_modules/mysql2/lib/packets/packet.js:728:17)
at ClientHandshake.execute (/home/ubuntu/jun/securea_server/microservice/node_modules/mysql2/lib/commands/command.js:29:26)
at Connection.handlePacket (/home/ubuntu/jun/securea_server/microservice/node_modules/mysql2/lib/connection.js:478:34)
at PacketParser.onPacket (/home/ubuntu/jun/securea_server/microservice/node_modules/mysql2/lib/connection.js:97:12)
at PacketParser.executeStart (/home/ubuntu/jun/securea_server/microservice/node_modules/mysql2/lib/packet_parser.js:75:16)
at Socket.<anonymous> (/home/ubuntu/jun/securea_server/microservice/node_modules/mysql2/lib/connection.js:104:25)
at Socket.emit (node:events:514:28)
at addChunk (node:internal/streams/readable:324:12)
at readableAddChunk (node:internal/streams/readable:297:9)
at Readable.push (node:internal/streams/readable:234:10)
이에 사용자의 비밀번호를 아래와 같이 다시 세팅해주면 된다.
// mysql 5.x
mysql> update user set password=password('1234') where user='root';
mysql> update user set authentication_string=password('1234') where user='root';
// mysql 8.x
mysql> alter user 'root'@'localhost' identified with mysql_native_password by '1234;
비밀번호로 접속이 안되는 경우
mysql -u root -p mysql
위 명령어로 접속이 안되는 경우 아래의 링크를 참고하면 된다.
아래 링크를 참고하여, mysql 서비스를 종료했다가 권한정보없이 로그인할 수 있도록 한 후 비밀번호를 바꿔주면 된다.
MySql: Access denied for user 'root'@'localhost'
이제 막 첫 서버 접속을 시작하려는데~~~이놈의 망할 denied 가 뜬다. 스트레스!!! MySql: Access denied for user 'root'@'localhost' MySql: Access denied for user 'root'@'localhost' MySql: Access denied for user 'root'@'localhost' MySq
sinbot.tistory.com
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
에러가 발생하면 아래를 참고
[MySQL] ERROR 2002 (HY000) Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
[실행환경] Windows 10 Ubuntu 18.04 LTS mysql ver14.14 Distrib 5.7.31 MySQL데몬 실행 에러 ubuntu에서 mysql을 실행 시킬 때 /etc/init.d/mysql start 혹은 mysql -u root -p 등을 사용할 것이다. 만약 Windows에서도 mysql을 사용
gre-eny.tistory.com
권한 부여해준 root말고 새로운 user를 만드는 것도 좋은 방법이다.
https://orange056.tistory.com/98
[MySQL] access denied for user 오류 해결, 외부접속 허용
1. mysql 접속 우선 mysql에 연결해준다 명령어는 mysql -uroot -p 띄어쓰기에 주의해준다(그래서 웬만하면 복붙함) 그리고 비밀번호를 입력해준다 이비밀번호는 mysql을 처음 설치할때 지정해준 비밀번
orange056.tistory.com
access denied
https://changun516.tistory.com/55
[Mysql 2059] 로그인 오류 Access denied for user '' @ ''(using password: YES)
오류 해결 Mysql을 Connet하는 경우 아래와 같은 Error 메세지를 만나는 경우가 종종 있습니다. 로그인이 불가하다는건데 문제는 다음과 같습니다. 0. 로그인 정보가 잘못된 경우. 1. 외부 접속을 열어
changun516.tistory.com