가수면
MySQL 본문
스프링 부트에서 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