라벨이 parameter group인 게시물 표시

AWS RDS parameter group을 이용해 character-set 변경(utf8), 타임존 변경하기

이미지
지난 포스팅에선 AWS RDS 파라미터 그룹을 생성하고 function을 생성할 수 있는 권한을 만들기 위해서 log_bin_trust_function_creators 변수를 변경해주었습니다. 이번 포스팅에선 지난 포스팅에서 생성한 파라미터 그룹을 이용하여 character-set , 타임존을 변경해보겠습니다. 우선 RDS 대시보드 콘솔로 이동합니다. 왼쪽 메뉴의 파라미터 그룹으로 이동합니다. 지난 포스팅에서 생성한 my-parameter-group 이 있습니다. 선택하시고 파라미터 편집으로 이동합니다. 필터에 character_set 으로 검색하면 6개의 항목이 나오는데 값 편집으로 모두 utf8로 변경합니다. character_set_client : utf8 character_set_connection :  utf8   character_set_database :  utf8 character_set_filesystem :  utf8 character_set_results :  utf8 character_set_server :  outfit 그 다음으로, collation으로 검색을 하면 두가지 항목이 나오는데 utf8_unicode_ci로 변경합니다. collation_connection :  utf8_unicode_ci collation_server : utf8_unicode_ci 여기까지 수정하셨다면, 데이터베이스의 utf8 설정이 완료 된 상태입니다. 이제 timezone을 설정해보겠습니다. MySQL Workbench에서 해당 RDS에 접속하고 한글화 설정을 위한 프로시져를 등록합니다. DELIMITER | CREATE PROCEDURE '설치한 DB명' . `store_time_zone` () IF NOT (POSITION( 'rdsadmin@' IN CURRENT_USER ()) = 1 ) THEN SET SESSION

AWS RDS parameter group을 이용하여 Function 생성하기

이미지
지난 포스팅에서 AWS RDS를 이용해 MySQL DB를 생성해보았습니다. 이후에 MySQL DB에서 Fucntion을 생성하고 사용해야하는 경우가 생기게 됩니다. 예를 들어, DROP FUNCTION IF EXISTS hello_world; DELIMITER $$ CREATE FUNCTION hello_world (addressee TEXT ) RETURNS TEXT DETERMINISTIC READS SQL DATA BEGIN RETURN CONCAT( 'Hello ' , addressee); END; $$ DELIMITER ; SELECT hello_world( 'Earth' ); 위와 같은 FUNCTION을 생성하려고 SQL문을 작성하고 실행해보면 AWS RDS는 Error Code: 1419. You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable) 이런 에러가 발생하게 됩니다. 에러를 확인해보면 log_bin_trust_function_creators_variable 를 설정하라는 내용입니다. 기존의 로컬이나 물리적 서버 설치였으면 cnf와 같은 환경설정 파일 상에서 환경변수를 설정해줄 수 있었지만,  AWS RDS는 ssh와 같은 접속을 지원하지 않기때문에 parameter group 설정을 지원하고있습니다. AWS RDS Dashboard로 이동합니다. 왼쪽 메뉴에서 파라미터그룹탭으로 이동하면 default 그룹만 있는 상태입니다. 파라미터 그룹 생성을 클릭합니다. 사용하고 있는 DB 엔진을 선택하고 그룹이름과 설명을 입력하고 생성을 클릭합니다. 새로 생성한 파라미터 그룹의 파라미터 편집버튼을 누르고 필터에 function이라고 입력