가수면

MySQL 본문

웹 개발/웹 개발

MySQL

니비앙 2023. 12. 14. 00:37

스프링 부트에서 MySQL

도커로 실행했을 때의 환경으로 정리

의존성 설치

// Spring Boot 3.1 이상
		<dependency>
			<groupId>com.mysql</groupId>
			<artifactId>mysql-connector-j</artifactId>
		</dependency> 

// Spring Boot 3.0 이하
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>

설정

// application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/todos		// 데이터 베이스 이름
spring.datasource.username=todos-user
spring.datasource.password=dummytodos
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect	// mysql와 대화하기 위한 설정
spring.jpa.hibernate.ddl-auto=update	// 스프링 부트가 테이블을 생성할 수 있도록 해주는 설정

mysqlsh로 확인하는 법

1. mysqlsh 설치 후 실행

 

2. 연결

\connect 유저이름@호스트:포트

\connect todos-user@localhost:3307

\use 스키마

\use todos

 

3. sql 구문 실행

'\sql'로 진입

\sql

실행할 sql 입력

select * from todo;

MySQL Workbench로 확인하는 법

연결 설정

연결 후 Schemas탭의 테이블에서 확인

혹은 직접 쿼리 입력 후 번개 모양으로 실행


MySQL 명령어

EC2에서 MySQL 명령 프롬프트 사용하기

도커를 사용하지 않을 경우

mysql -u root -p

도커를 사용할 경우(docker ps를 사용하면 컨테이너 이름을 확인할 수 있다.)

docker exec -it 컨테이너_이름 mysql -u root -p

종료

exit;
또는
\q;
또는
Ctrl + D

사용자의 현재 권한 확인

SHOW GRANTS FOR 'jhchoi1182'@'%';

todos 데이터베이스에 대한 모든 권한 부여

GRANT ALL PRIVILEGES ON todos.* TO 'jhchoi1182'@'%';

권한 변경 사항 적용

FLUSH PRIVILEGES;

전체 데이터베이스 목록 확인

SHOW DATABASES;

테이블 목록 확인

SHOW TABLES;

컬럼 목록 확인

DESCRIBE 테이블_이름;

데이터베이스 선택

USE 데이터베이스_이름;

대소문자 구분하도록 Collation 변경하기

// user 테이블의 username 필드만 대소문자 구분
ALTER TABLE user MODIFY username VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

// user 테이블 전체 대소문자 구분
ALTER TABLE user CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

데이터 컬럼 복사 후 삭제

UPDATE your_table_name SET created_at = registered_at;
ALTER TABLE your_table_name DROP COLUMN registered_at;

트랜잭션 사용

START TRANSACTION;

UPDATE post SET contents = noHtmlContents;

-- 변경 사항을 검토 후 문제가 없으면 COMMIT, 문제가 있으면 ROLLBACK을 실행
COMMIT;
-- ROLLBACK;

테이블 삭제

DROP TABLE table_name;

'웹 개발 > 웹 개발' 카테고리의 다른 글

IntelliJ 단축키 정리  (1) 2024.01.09
HTTP 상태 코드 정리  (0) 2023.12.19
[Docker] 기본  (0) 2023.11.28
Stacking Context  (0) 2023.10.18
CSS 애니메이션  (0) 2023.09.26
Comments