timezone

DataBase/Mysql 2020. 8. 28. 11:09

SET GLOBAL time_zone='Asia/Seoul';

SET time_zone='Asia/Seoul';

Posted by 철냄비짱
,

Show variables like"c%";

 

ALTER TABLE cms_account converttocharset utf8;

ALTER DATABASE sigongweb_db charset utf8;

Posted by 철냄비짱
,

max_allowed_packet

DataBase/Mysql 2020. 8. 28. 11:06

SET GLOBAL max_allowed_packet = 1024 * 1024 * 16;

SET SESSION max_allowed_packet = 1024 * 1024 * 16;

Posted by 철냄비짱
,

mysql 에는 데이터를 암호화, 복호화하는 AES_ENCRYPT, AES_DECRYPT 함수가 있습니다. 이 암호화는 128비트 길이로 인코딩되어 저장됩니다. 그러나 소스를 수정해서 256비트까지 확장시킬수 있다고 합니다.

 

AES_ENCRYPT 는 문자열을 암호화하고, 바이너리 문자열을 반환하지만, AES_DECRYPT 는 암호화된 문자열을 복호화합니다. AES_DECRYPT 는 유효하지 않은 데이터는 padding을 감지하고, NULL을 반환합니다.

 

 

 # "암호화 키"는 임의의 값이 올 수 있으며, "문자열"은 암호화하고자 하는 값이 됩니다.



 # AES_ENCRYPT 암호화

  INSERT INTO 테이블명 VALUES (HEX(AES_ENCRYPT('문자열', '암호화 키')));



 # AES_DECRYPT 복호화

  SELECT AES_DECRYPT(UNHEX(필드명), '암호화 키') FROM 테이블명;

예제 (ex #1

 

 # AES_ENCRYPT 암호화

 INSERT INTO tbname VALUE (HEX(AES_ENCRYPT('123456','가나다라')));

 // 결과: 5A33E11DC0B638E4E5E74EBD52F55E3D



 # AES_DECRYPT 복호화

 SELECT AES_DECRYPT(UNHEX(필드명), '가나다라') FROM tbname;

출처: <https://blog.habonyphp.com/213>

 

 

 

DB 속도 + 검색 문제로 상기기능 실제적용 실패

Posted by 철냄비짱
,

MySQL 기간검색

DataBase/Mysql 2020. 4. 11. 19:12
select * from music 

where

 (type='song' or type='album')

 and 

created_date > DATE_ADD(now(), INTERVAL -1 hour);


 


 

music 테이블에서 type이 song 또는 album 인 데이터가 지난 1시간 동안 얼마나 들어왔는지 검색


 

-1~ -24 까지 하면 최근 한 시간 부터 24시간까지 검색이 가능


 

이런 식으로 끝에

-1 hour  최근 한 시간

-1 day 최근 하루

-1 month 최근 한달


 


 

 select * from music

 where 

created_date between '2013-10-10' and '2013-10-14';

 

10일부터 14일까지 검색

Posted by 철냄비짱
,

1. my.cnf 파일 내용을 아래와 같이 수정한다.(Mysql, MariaDB 설정 파일)


명령어 : vi /etc/my.cnf [엔터]


[client]

default-character-set = utf8


[mysqld]

init_connect = SET collation_connection = utf8_general_ci

init_connect = SET NAMES utf8

character-set-server = utf8

collation-server = utf8_general_ci


[mysqldump]

default-character-set = utf8


[mysql]

default-character-set = utf8


2. 위 내용을 추가 한 후, my.cnf 파일을 저장 한다.

3. 내용을 추가 한 뒤, 설정한 내용을 적용 하기 위해 mysql을 재시작 한다.

   - 명령어 :  service mysqld restart 또는 /etc/init.d/mysql restart

                   (MariaDB도 Mysql 명령과 동일 함.)

4. DB에 접속 하여 정상적으로 적용 되었는지 확인 한다.

   - 명령어 :  mysql -u root -p [엔터]


> show variables like 'c%';

+--------------------------+-----------------------------------------+

| Variable_name            | Value                                   |

+--------------------------+-----------------------------------------+

| character_set_client     | utf8                                    |

| character_set_connection | utf8                                    |

| character_set_database   | utf8                                    |

| character_set_filesystem | binary                                  |

| character_set_results    | utf8                                    |

| character_set_server     | utf8                                    |

| character_set_system     | utf8                                    |

| character_sets_dir       | /usr/local/server/mysql/share/charsets/ |

| collation_connection     | utf8_general_ci                         |

| collation_database       | utf8_general_ci                         |

| collation_server         | utf8_general_ci                         |

| completion_type          | NO_CHAIN                                |

| concurrent_insert        | AUTO                                    |

| connect_timeout          | 10                                      |

+--------------------------+-----------------------------------------

Posted by 철냄비짱
,

Groupby

예약어가 무조건 전체 그룹으로 묶여야만 하는 설정 해제

 

[mysqld]
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Posted by 철냄비짱
,

For some reason mysql on OS X gets the locations of the required socket file a bit wrong, but thankfully the solution is as simple as setting up a symbolic link.

You may have a socket (appearing as a zero length file) as /tmp/mysql.sock or /var/mysql/mysql.sock but 1 or more apps is looking in the other location for it.

Rather than move the socket and have to edit config files and remember to keep edited files local and away from servers where the paths are correct, simply create a symbolic link so your mac finds the required socket, even when it's looking in the wrong place!

If you have /tmp/mysql.sock but no /var/mysql/mysql.sock then...

cd /var
sudo mkdir mysql
sudo chmod
755 mysql
cd mysql
sudo ln -s /tmp/mysql.sock mysql.sock

If you have /var/mysql/mysql.sock but no /tmp/mysql.sock then

cd /tmp
ln -s /
var/mysql/mysql.sock mysql.sock

You will need permissions to create the directory and link, so just prefix the commands above with sudo if necessary.

Hope this helps. It has sorted this exact issue for me on 3 macs so far.

Posted by 철냄비짱
,


음.....일단 올려서 추후에 사용을 대비하긴 하는데...
안되는 것도 있고..정리가 영~

암튼 맘에 안들어....
Posted by 철냄비짱
,