본문 바로가기

Develop/Database

(8)
[Develop/Database] AWS RDS MySQL timezone 변경 [Develop/Database] AWS RDS MySQL timezone 변경 AWS RDS를 만들었을 때 기본 MySQL의 시간대는 UTC(국제 표준시)로 설정이 되어있다. 따라서 개인 프로젝트 진행하면서 DB 저장시간과 웹에서 등록하는 시간이 일치하지 않는 이슈가 발생하였다. UTC와 현재 작업중인 우리나라의 시간과 맞지 않아 생기는 이슈다. 그럼 현재 MySQL에 설정시간을 확인해보고 AWS의 RDS 인스턴스의 timezone을 변경해보자. 현재 timezone 확인 해당 DB에 접속 후 아래 쿼리를 통해 timezone이 무엇으로 설정돼있는지 보자. RDS 인스턴스의 초기 timezone은 UTC로 되있기 때문에 UTC로 결과물이 나올 것이다. 이제 timezone을 KST(한국 표준시)로 변경..
[Develop/Database] AWS RDS MySQL 프리티어 생성 AWS RDS MySQL 프리티어 생성 최근에 AWS로 EC2 서버를 생성했는데 DB 서버도 구축해보고 싶어 AWS에서 프리티어로 제공하는 MYSQL RDS를 설치하면서 그 과정을 포스팅한다. 설치방법은 AWS 계정이 존재한다는 가정하에 진행한다. 첫번째 AWS에 접속하여 서비스에 RDS를 선택 아래 사진과 같이 RDS를 선택하고 데이터베이스 생성을 선택한다. 두번째 자신이 생성할 RDS 를 선택 자신이 생성하고 싶은 RDS 종류와 버전을 선택한다. 세번째 템플릿을 테스트용 사용인 프리티어로 설정 네번째 자신의 설정에 맞게 RDS 정보를 입력 계정에 대한 정보는 접속 시 필요하니 꼭 숙지 다섯번째 연결에 퍼블릭엑세스 가능성을 '예'로 변경 여섯번째 DB 인스턴스 크기나 스토리지 부분 등 나머지 부분은 그..
[Develop/Database] CentOS MariaDB 10.3 이상 설치 및 업그레이드 CentOS MariaDB 10.3 이상 설치 초기 CentOS 서버 초기 환경 세팅 기회가 생겨 MariaDB 10.3 최신 버전 설치방법과 그에 따른 이슈를 작성하려 한다. 먼저 아무 생각 없이 아래와 같이 설치한다면 10.3 버전이 아닌 6 버전대로 설치가 된다. 그에 따라 컬럼 기본값에 CURRENT_TIMESTAMP를 설정하여 줄 수 없는 등등 이슈가 있었고 다른 서버들과 버전이 상이한 이슈가 있었다. 따라서 10.3 버전을 설치하려면 아래와 같이 설정해준다. 설령 이미 MariaDB를 설치하였어도 아래와 같은 설정 후 다시 설치해주면 되지만 기존에 데이터들은 덤프를 해둔 후 업그레이드하자. 먼저 yum repository를 설정한다. /etc/yum,repos.d/에 MariaDB.repo 파..
[Develop/Database] Linux MySQL commandLine에서 SQL파일 실행 Linux MySQL commandLine에서 SQL파일 실행 리눅스 환경에서 특정 sql파일을 실행해야 할 경우가 있다. sql 파일을 usb를 사용하거나 특정 linux 서버위치에 올려놓았다면 아래와 같이 실행하면 된다. mysql, mariaDB에 접속한다. mysql -u 계정 -p 사용 Database를 선택한다. use 'Database 명' source 명령어를 통하여 지정 sql문을 실행한다. source 'sql 위치'
[Develop/Database] GROUP_CONCAT을 이용한 컬럼 합치기 *Mysql을 예시로 한 포스팅입니다. GROUP_CONCAT을 이용한 컬럼 합치기 상황에 따라서 GROUP BY 이용 시 특정 컬럼 값을 합쳐야 하는 경우가 있다. 예를 들어 한 사용자가 가질 수 있는 자동차의 대수가 여러 대 일 경우 하나의 데이터 셋한 줄로 가져오고 싶은 경우 GROUO_CONCAT을 활용하여 , 나 원하는 구분자로 문자열로 묶어 반환 할 수 있다. 물론 (JPA)[https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#reference]를 쓰는 사용자들은 SQL문으로 처리하지 않겠지만 나와 같은 사람들을 위하여 블로그 포스팅한다. GROUP_BY, GROUP_CONCAT 활용 만약에 아래와 같은 데이터셋에 사용자를 ..
[Develop/Database]DELETE와 TRUNCATE 차이 DELETE와 TRUNCATE 차이 DELETE와 TRUNCATE는 테이블의 내용을 삭제하기 위한 database sql 언어들로 둘은 공통점을 가집니다. 그렇다면 그 차이점은 무엇일까요? 먼저 DELETE는 SELECT, INSTER, UPDATE와 같이 테이블 데이터를 조작하기 위한 DML(Data Manipulation Language)이고 TRUNCATE는 CREATE, DROP, ALTER와 같이 스키마를 정의하거나 조작하기 위한 DDL(Data Definition Language)입니다. Microsoft Doc을 찾아본 결과 아래와 같이 설명하였습니다. DELETE 문과 비교하여 TRUNCATE TABLE에는 다음과 같은 이점이 있습니다. 트랜잭션 로그 공간을 덜 사용합니다. DELETE 문..
[Develop/Database] MariaDB user 생성, 삭제, 권한 관리 MariaDB user 생성, 삭제, 권한 관리 Database 접속 MariaDB 접속 후 database 생성 및 사용 예시) create database 데이터베이스명 예시) use 데이터베이스명 create database hoos-up; use hoons-up; User 생성 예시) create user '아이디'@'접속위치' identified by '비밀번호' 접속 위치 = 'localhost' 내부일 경우 / '%' 외부일 경우 create user 'hoons'@'%' identified by '1234'; User 삭제 예시) drop user '아이디'@'접속위치'; drop user 'hoons'@'%'; User 권한 확인 해당 database user 권한 확인 예시) show ..
[Develop/Database] MariaDB 10.4버전 이후 root 패스워드 변경 MariaDB 최신 버전 MariaDB는 10.4 이후로 update 된 내용을 아래와 같이 기재 대략 시스템의 root와 MariaDB에 root와 동일하게 본다는 뜻 그렇기에 db 접속 시 시스템에 root로 등록하면 mysql 명령어로 접속 시 root 패스워드가 따로 필요 없어졌습니다. 공식 - https://mariadb.com/kb/en/library/authentication-from-mariadb-104/ Authentication from MariaDB 10.4 Authentication changes in MariaDB 10.4. mariadb.com 기존에 root 패스워드 변경 시 아래와 같이 명령어 사용했지만 아래와 같은 에러가 표출. MariaDB [mysql]> update u..