일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 캐딜락
- Slack
- 스마트에너지미터
- 슬랙사용법
- docker
- Xcode
- CTS
- 인테리어
- 장애
- serial
- MySQL
- 알리
- 셀프인테리어
- M1
- virtualbox
- PostgreSQL
- catalina
- ReactNative
- 예인싱크
- S3
- Mac
- 슬랙
- 직구
- 알리익스프레스
- 머신러닝
- 슬랙활용
- 싱크대
- 해외직구
- vagrant
- Today
- Total
목록Programmer/Mysql (5)
MoreLean
MySQL의 SET type에 대해선 문서를 찾아보면 상당히 짧은 것을 확인할 수 있습니다. 통상적으로 적을 것이 별로 없다는 것은 그만큼 명확하고 단순하거나 아니면 그 특징이 크게 자랑할게 없다고 할 수 있습니다. MySQL의 SET type은 후자에 해당한다고 생각합니다. SET type을 처음 봤을땐 '이런 데이터 타입이 있군!' 했었는데, DB에서 컬럼 타입을 선택할때 가장 중요한 부분이 성능과 효율성이라고 생각하는데 이 관점에서 SET type의 제한적인 인덱스는 기능에 치명적이었습니다. 먼저 간단히 SET type에 대해서 설명을 하자면, 1개 이상의 값을 저장할수 있는 type입니다. 이를 테면, 국적이라던지 수강과목이라는 컬럼을 생성할때 이 SET 타입을 쓸 수가 있습니다. 국적이야 데이터..
mysql 에서 function을 추가하려 SQL create query를 복사후 실행했더니 다음과 같은 오류가 발생하며 생성되지 않았다. This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled엇 이게 뭐지 했는데, 구글신 영접하여 확인해보니 환경설정이 되어있지 않아서 생기는 문제란다. http://www.jamediasolutions.com/blog/deterministic-no-sql-or-reads-sql-data-in-its-declaration.html 가볍게 설정하려 했으나 AWS 의 RDS 를 쓰는 관계로 직접 수정은 권한 없음. Parame..
지금까지는 항상 CentOS만을 써오다 docker 덕분에 Ubuntu 에 입문 왠만하면 서버를 Ubuntu 12.04 LTS 버전으로 설치해서 사용하고 있다. 그러다 mysql 을 설치할 일이 생겨 apt-get install mysql-server 를 실행하고, 가볍게 my.cnf ( ubuntu는 경로가 조금 다르다 /etc/mysql/my.cnf ) 를 실행해주었는데 파일을 쓸수 없다는 에러메시지만 수두룩하게.. 알고 봤더니 이유는 Ubuntu의 보안 프로그램인 apparmor 때문이었다. vi /etc/apparmor.d/usr.sbin.mysqld 를 실행하여 기존 데이터 위치인 /var/lib/mysql 대신에 변경된 경로로 바꾸어 주면 된다. 끝.
mysql replication 이 몇가지 사유로 인해 깨졌을 경우. 기본적으로 mysql 의 replication은 binary 로그를 기반으로 순차적인 복제 실행을 하는 과정을 가지고 있다. 즉, 해당 문제가 발생하였을 경우 로그 포지션을 기록해두었다가 해당 문제를 스킵하면 되나, 그 문제 발생 사유가 데이터의 구조등의 변경에 영향을 미치는 쿼리라면 스킵하는 것만이 능사는 아니니 꼭 확인이 필요함. # skip 방법1. mysql 의 master log position을 지정해준다. 예를 들어 mysql-bin.00009로그파일의 1001번째 position 에서 문제가 발생했을 경우 mysql> stop slave; mysql> change master to master_log_file 'mysql..
mysql 에서 concat 을 통해 두개의 필드의 문자를 조합할때 제대로 동작하지 않는 경우가 있다. 특히 숫자형( int, float )일 경우 그런 문제가 발생한다. 이럴때는 형변환을 해준뒤에 조합을 하면 된다.SELECT concat( cast( year as char ), lpad( cast( month as char ), 2, '0' ) ) as ymonth.... 이렇게 사용하면 concat 의 결과가 제대로 출력될 것이다. 위의 lpad의 경우도 zerofill 처리할때 사용할 수 있는 함수lpad에서 알수 있듯이 "지정한 길이만큼 부족한 부분을 설정한 문자값으로 left부터 채운다." 라는 의미를 가짐.