본문 바로가기

MariaDB

(29)
mariadb procedure 소스 보는 권한 해결 mariadb procedure 소스 보는 권한 해결 안녕하세요. 얼마전 사내 개발자분이 생성 되어 있는 procedure의 내부 소스를 보고 싶다는 요청을 하셨습니다. 그래서 실행이 되면 당연히 보실수 있을꺼라 생각하여 execute 권한이 있는 것을 확인하고 되실꺼라 했는데, 어랏? 보이지 않는다고 하시네요. 현재 권한 확인 그래서 지금 부여된 권한은 확인 해보았습니다. 저희는 dev라는 role을 생성해서 개발자분들의 권한을 관리하고 있기 때문에 해당 role에 부여된 권한을 확인 했습니다. show grants for dev; 결과, usage와 더불어 업무상 필요한 schema들에 적당하게 select, insert, update, delete, execute가 들어가 있는것을 확인 했습니다. ..
mysql 실무에 유용한 sql 로직 모음 #01 mysql 실무에 유용한 sql 로직 모음 #01 안녕하세요. mysql 또는 mariadb를 사용하시면서 실무에서 만나게 되는 다양한 sql 로직들에 대해서 정리를 해보도록 하겠습니다. 물론, 오라클이나 mssql등에서도 약간만 수정하시면 사용 하실 수 있는 로직들이니 한번씩 참고 하시면 되겠습니다. 많은 SQL 강의 수강생들이 문의 하시는 내용들 위주로 정리를 해보았습니다. 그럼 시작해 볼께요! #우선 아래 데이터를 직접 mysql DB나 mariadb에 넣으시고 테스트 해보셔도 되고, 아니면 본인 DB에 있는 데이터에 맞게 컬럼등을 수정해서 사용 하시면 됩니다. class_table_ddl.sql을 먼저 실행하고, 나머지 데이터를 insert 하시면 됩니다. 특정 컬럼의 유니크한 데이터 건수 카운트..
python으로 excel 데이터 탭 별로 mysql DB로 이관 하기 (data migration) python으로 excel 데이터 탭 별로 mysql DB로 이관 하기 (data migration) 오늘은 python을 이용하여 아주 간단하게 excel에 있는 데이터들을 DB로 이관 하는 방법에 대해서 확인 해보도록 하겠습니다. 우선, excel 파일을 하나 준비를 하고, mysql DB에 테이블을 생성 하는것부터 파이썬 코딩 까지 해보도록 하겠습니다. 따라오시죠! 엑셀 데이터 파일 준비 우선 nation.xlsx 라는 이름으로 엑셀 파일을 준비를 합니다. 그리고 텝을 두개를 만들겁니다. 다음과 같이 준비 해보시면 됩니다. 이렇게 엑셀 데이터 준비 하시고, 다음은 테이블을 생성 하겠습니다. mysql DB 테이블 준비 위 두개의 탭, 국가와 도시 데이터를 넣을 테이블을 mysql DB에 생성 해줍니..
mariadb database collate error 1267 해결 방법 mariadb database collate error 1267 해결 방법 안녕하세요. mariadb 나 mysql을 사용하면서 가끔 sql을 실행하고 나면 발생하는 에러 입니다. 바로 error 1267 인데요, 해당 에러에 대한 해결 방안을 일전에 소개 한적이 있습니다. Table과 database (schema) 의 collate 맞추기 아래 링크로 가서 보시면 아시겠지만, 테이블간의 collate가 맞지 않아 발생하는 에러인데, 아주 가끔 테이블간 collate가 맞는데도 불구하고 해당 error가 발생하는 case를 확인하게 되었습니다. https://stricky.tistory.com/502 mysql error 1267 (HY000): Illegal mix of collations 무조건 해..
프로그래머스 SQL 코딩 테스트 select 문제 풀이 프로그래머스 SQL 코딩 테스트 select 문제 풀이 SQL 연습하신다고 프로그래머스 SQL 풀어보시는 분들이 많이 계시네요. 오늘부터 하나씩 풀이를 써볼까 합니다. 자자, 그럼 레고레고~!!! select 모든 레코드 조회하기 첫번째는 모든레코드를 조회하는 문제네요. 우선 테이블명은 ANIMAL_INS 입니다. 동물 보호소에 들어온 동물의 정보를 담은 테이블 이구요. 문제 설명 바로아래 나오는곳 보면 컬럼 목록이 있죠. 옆에 type은 해당 컬럼의 데이터 타입 입니다. 여기서는 varchar 와 datetime만 사용을 하였네요. nullable 부분은 해당 컬럼에 값이 없음을 뜻하는 NULL 데이터가 들어갈수 있는지 여부를 말하는겁니다. NAME 이라는 컬럼만 NULL이 들어갈 수 있습니다. 나머지..
[mysql]Errcode: 28 No space left on device 에러 메시지 해결 방법 [mysql]Errcode: 28 No space left on device 에러 메시지 해결 방법 안녕하세요. 위와같은 에러가 발생하는 원인은, 크게 mysql에서 쓰는 temp 디렉토리가 가득찼을때 입니다. 대부분, mysql이 설치되어 있는 홈디렉토리는 크게 공간을 할당해서 문제가 없는데 temp 디렉토리는 공간이 작은 disk에 붙여둬서 그런경우가 생깁니다. 먼저, 어디에 temp 디렉토리가 설정 되어 있는지 확인 해보세요. show variables like 'tmpdir'; 위 쿼리로 했을때, 나오는 경로가 temp 디렉토리 경로 입니다. 여기가 mysql이나 mariadb의 홈디렉토 내부가 아니라면 홈디렉토리 내부 경로에 우선 폴더를 만들고, 권한을 부여 합니다. 그리고, my.cnf를 수정..
mysql 테이블 및 컬럼 케릭터셋 변경 하기 mysql 테이블 및 컬럼 케릭터셋 변경 하기 mysql이나 mariadb를 사용하면서 간혹 테이블이나 컬럼의 케릭터셋을 변경해야 하는 경우가 생깁니다. 물론 데이터베이스 전체의 케릭터셋을 변경 할 수도 있겠지만, 간혹 이렇게 테이블과 컬럼 단위로 변경 할 사유가 생겼을때 아래와 같이 간단하게 조치를 할 수 있습니다. ◎ SQL 테이블 단위 변경 alter table 테이블명 convert to character set utf8; utf8로 테이블 전체의 케릭터셋을 변경 한다는 의미 입니다. 컬럼 단위 변경 ALTER TABLE 테이블명 MODIFY COLUMN 컬럼 VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci; 테이블내 특정 컬럼의 케릭터셋을 변경..
mysql mariadb update join SQL 문법 쉬운 설명 mysql mariadb update join SQL 문법 쉬운 설명 mysql이나 mariadb에서 update 하실때 join해서 update 하는 방법에 대해서 쉽고 간단하게 설명을 드리도록 하겠습니다. 기존에 오라클이나 PG등을 사용하신분들은 mysql/mariadb에서 하시던데로 update join을 하면 잘 안되시는걸 경험하셨을겁니다. 간단하게, 쉽게 설명을 드리도록 할께요. Mysql/Mariadb update join 우선 아래와 같이 실습을 위해 두개의 테이블을 생성 했습니다. 테이블 데이터를 먼저 확인 해보겠습니다. 위 테이블은 학생테이블 입니다. up_students 테이블 이구요. 지금 그림과 같이 major_title과 major_title_prfs_name 컬럼이 null로 채..