본문 바로가기

Mysql

MySQL 5.7.9 설치시 참고해야할 사항

현재 최신 버젼인 MySQL 5.7.9 설치시 참고해야할 사항 입니다.

1. MySQL 5.7 부터는 boost 1.5.9 이상이 필요하므로 cmake 옵션 뒤에 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost 
   라고 옵션을 추가하여야 합니다. (소스컴파일의 경우)

2.  mysqli_connect(): Headers and client library minor version mismatch 라는 에러가 발생할 경우
   터미널에서 php -i | grep 'Client API' 라고 명령을 내려서 Client API 버젼을 확인해보고 맞지 않을 경우 PHP를
   다시 컴파일 해주시면 됩니다.(소스컴파일의 경우)

3. MySQL 5.7x중에서도 5.7.9부터는 mysql.user 테이블의 password 필드명이 authentication_string으로 변경되었습니다.
   또한 password_expired, password_last_changed, password_lifetime, account_locked 필드가 추가되어 패스워드 기간 등에
   대한 제어가 가능합니다.

4. MySQL의 Password 함수를 이용하시는 경우 validate_password 옵션 부분을 세심히 봐주셔야 합니다.
   아래 명령으로 관련된 설정값을 볼수 있습니다.

  mysql> SHOW VARIABLES LIKE 'validate_password%';
  +--------------------------------------+--------+
  | Variable_name                        | Value  |
  +--------------------------------------+--------+
   | validate_password_dictionary_file    |        |
   | validate_password_length             | 8      |
   | validate_password_mixed_case_count   | 1      |
   | validate_password_number_count       | 1      |
   | validate_password_policy             | MEDIUM |
   | validate_password_special_char_count | 1      |
   +--------------------------------------+--------+
  위와 같은 기본 설정값을 그대로 사용할 경우 where password=password('test'); 와 같은 쿼리를 사용할 경우 입력받는 4자 이므로 
  password() 함수를 실행하지 않고, Your password does not satisfy the current policy requirements 라는 에러를 발생합니다.

  mysql에서 직접 쿼리를 실행하면 아래처럼 나올 것이구요.
  mysql> SELECT * FROM sc_board_free WHERE no=1 AND password=PASSWORD('test');
  ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

   즉, MySQL의 기본설정된 규칙에 해당되지 않는 비밀번호는 쿼리 자체가 실행되지 않아 비밀번호가 맞음에도 불구하고
   로그인 되지 않거나, 오류를 출력하게 될 것입니다.
   
   기존의 데이터베이스를 그대로 유지 운영해야 하는 경우 my.cnf 화일에 validate-password=off 라고 기입해주고 MySQL을
   재시작 해주는 것으로 해결 할 수 있습니다. XE, 그누보드 등의 범용 오픈소스 게시판을 이용하는 경우에도 이에 해당합니다.
   참고 : http://dev.mysql.com/doc/refman/5.7/en/validate-password-plugin.html#sysvar_validate_password_length


출처 : http://www.codeigniter-kr.org/bbs/view/tip?idx=8391

'Mysql' 카테고리의 다른 글

mysql 에러코드  (0) 2017.01.19
[MySql] binlog 파일 sql 파일로 변환 쉘스크립트  (0) 2016.09.11
mysql 패스워드 초기화  (0) 2016.01.25
mysql 4.0 -> 5.5 DB 업그레이드  (1) 2015.12.18
mysql5.5 넘어오면서 제거된 내용들  (0) 2015.12.14