본문 바로가기

Database/mariaDB administrator

(57)
mysql 테이블 한글 insert 안될때 조치 방안 mysql 테이블 한글 insert 안될 때 조치 방안 안녕하세요. mysql 테이블에 insert 작업을 할때 한글이 입력 안될 때가 있어 난감하신 적이 있으실 겁니다. 아래와 같은 에러 메시지와 함께 한글이 안되는 증상이 나타나실 텐데요. Incorrect string value: '\xE3\x84\xB4\xE3\x85\x87...' for column 데이터 베이스에서 한글 입력이 불가할 때 생기는 현상입니다. 이럴 때는 우선 해당 데이터 베이스의 캐릭터 셋을 확인 해보셔야 합니다. SELECT schema_name , default_character_set_name FROM information_schema.schemata ; 위 쿼리를 통해서 데이터 베이스의 케릭터 셋을 확인해보시면 아래와 같은..
MySQL 8.0 테이블스페이스 관리 방법 변경 내용 feat.테이블 스페이스 삭제 한다면?! MySQL 8.0 테이블스페이스 관리 방법 변경 내용 feat.테이블 스페이스 삭제한다면?! 안녕하세요. MySQL 8.0에서의 테이블스페이스 관리 방법에 대해 변경된 내용과 사용 예제를 정리하겠습니다. 바로 시작합니다. innodb_file_per_table_tablespace MySQL 8.0을 새로 설치하였을 때 설정되는 default tablespace 옵션입니다. 다른 설정이 없으면 기본 적용입니다. 각 테이블마다 테이블 스페이스를 하나씩 만들어 관리됩니다. 압축 같은 다양한 테이블스페이스 옵션 등을 이용해서 각 테이블 별로 유연한 관리가 가능합니다. general tablespace 우리가 아는 일반적인 테이블 스페이스 관리 방법입니다. ibd 파일을 하나 만들어 놓고, (default는 sy..
MySQL의 다양한 실행 프로그램 mysqld_safe, mysql.server, mysqld_multi feat.mysqld MySQL의 다양한 실행 프로그램 mysqld_safe, mysql.server, mysqld_multi feat.mysqld 안녕하세요. mysql을 쓰면서 다양한 실행 옵션이 있는 건지 알고 계셨나요? mysql.server mysqld_safe mysqld_multi MySQL은 위와 같은 실행 프로그램을 가지고 있습니다. 이를 Server Helper Programs 라고 합니다. 우선 위의 어떤 프로그램이든 결국 mysqld를 호출하여 실행하게 하는데, 먼저 mysqld에 관해서 알아보겠습니다. mysqld MySQL Server를 mysqld라고 합니다. 디스크나 메모리에 있는 데이터베이스에 대한 접근을 통제합니다. 여러 개의 스토리지 엔진을 지원합니다. cache와 buffer를 사용해서 메..
[mariadb] autocommit 설정과 트랜잭션 개념과 성질 #[mariadb] autocommit 설정과 트랜잭션 개념과 성질 헐.. autocommit 이라니.. 무슨 애들 장난감 DB도 아니고.. autocommit 이 "ON"이다. 일단, 마리아 DB와 mysql에서 autocommit 확인방법! show variables like 'autocommit%'; 이렇게 해서 "ON" 이 나오면 거긴 오토 커밋이다. 세션단에서 autocommit을 설정 또는 해제하는 방법이다. SET AUTOCOMMIT = TRUE; --> 설정 SET AUTOCOMMIT = FALSE; --> 해제 하지만 위의 명령어로는 세션단에서만 활성화되는 것이다. DB 기본 세팅을 autocommit으로 변경하기 위해선 /etc/my.cnf.d/server.cnf 파일을 열어 이렇게 수..
[mariadb] 유저별 권한 관리, 권한 목록 종류, DB 권한 관리의 필요성, 권한 조회 안녕하세요. 요즘 새로운 회사에 적응을 해가고 있습니다. 오늘은 mariadb 에서 계정을 생성하고, 각 계정별 권한을 부여하는 업무를 진행 합니다. DB를 관리 함에 있어서 계정은 일종의 방화벽 역할도 할 수 있습니다. 계정별로 접속 가능한 source를 설정 할 수 있으며, 권한을 관리하여 권한 밖의 일을 미연에 방지 함으로 DB 관리의 효율성을 가져 올 수 있습니다. 이처럼 권한 관리는 DB를 운영 함에 필수적인 시스템이라고도 할 수 있습니다. DB마다 특성이 있겠지만, 전 개인별 계정을 사용 하는것을 추천 합니다. 통합 계정을 사용 하면 사용자의 편의성은 증대 되겠지만, 관리적인 효율성은 떨어지게 됩니다. 특정 개발자가 본인이 사용 하는 이외의 오브젝트를 접근하거나, 컨트롤 할 수 있게 된다면 거..
[mariadb] DB 계정 별 권한 확인, 적용, 부여, 회수 계정 생성 mariadb, mysql 에서 사용 할 수 있는 DB 계정별 권한 확인, 적용, 부여 안내드리도록 하겠습니다. 우선, 계정 목록을 보는 방법 select host, user from user; 계정 생성 방법 create user 'user'@'127.0.0.1' identified by 'Password'; # localhost에서만 접속 허용 create user 'user'@'%' identified by 'Password'; # everywhere 접속 허용 유저별 권한 부여 grant all privileges on TableName.* to 'user'@'127.0.0.1'; #localhost에서만 허용 grant select on testDB.* to 'user'@'%'; #everywh..
[mariadb] general log 설정 및 table에 log 쌓고 조회 설정 하기 안녕하세요. 오늘 mariadb, 물론 mysql에도 있는 log 관련된 기능 공유드립니다. 우선, mariadb에서는 db log를 저장할 수 있는데, 이것을 file이나 table에 기록할 수 있습니다. 이건 옵션으로 설정을 하는 건데요. 우선, general log가 무엇이냐? mariadb에서 수행되는 모든 쿼리를 로깅하는 기능입니다. 이 기능을 사용해서 log file을 쌓아, 조회할 수 있겠지요. 좀 더 조회를 편하게 하기 위해 general log를 table에 쌓을 수 도 있는데요. 이 방법을 소개하겠습니다. show variables like '%general%'; 우선 mariadb에 접속해서 위 sql을 실행합니다. 그럼 +------------------+---------------..
[mariadb] table add column 옵션 (컬럼 추가 옵션) after, first 안녕하세요. mariadb 에서 컬럼을 추가 할 일이 있는데.. (mysql도 동일 합니다) 어떻게 하느냐.. 도 중요하지만, 옵션을 줘서 편리하게 Table을 운용 할 수 있습니다. 일단, 일반적인 컬럼 추가 방식 부터 한번 볼께요. ALTER TABLE column_test ADD COLUMN company_name VARCHAR(10); 이렇게 컬럼을 추가 하게 되면.. 이 컬럼은 column_test라는 테이블의 젤 끝에 붙게 됩니다. 그래도, select 하고 SQL 작성하는데는 크게 문제가 없지만, 관리하는 DBA 입장에선 뭔가 깨름칙 합니다.. 유형이 비슷한 컬럼 끼리 좀 줄을 맞춰 놓고 싶은데요.. 이래서 필요한 옵션~! AFTER 와 FIRST 입니다. 여기서 딱! 감이 오시죠! ㅎㅎ 시..