2016. 4. 8. 14:23

MySQL 5.7 설치 관련

mysql 5.7.9? 였던가 부터는 초기 비번을 랜덤하게 설정해 버려서 사용하기 위해서는 비번을 설정해줘야 함


1. 인증없는 모드로 임시실행 후 root 접속

mysqld_safe --skip-grant-tables &


또는 my.cnf 에 skip-grant-tables 옵션 추가 후 service mysqld restart


---


mysql -u root


2. root 비밀번호 변경


- 5.7 이전

update mysql.user set password=password('비번') where user='root';


- 5.7 이후

update mysql.user set authentication_string=password('비번') where user='root';


3. 서비스 정지

service mysqld stop 나 mysql.server stop


4. my.cnf 아래 부분 추가/수정

5.7.9부터인가? validate plugin이 기본동작된다. password 함수 사용 시 특정 형식에 맞지 않으면 오류가 나는데 그걸 방지하기 위해서 플러그인을 off 하거나 설정을 변경한다.

기본 sql-mode 가 변경 되어서 혼란이 온다면 이부분도 수정


character-set-server = utf8

sql-mode=""


validate-password=off //설정을 끄거나 아래처럼 룰을 변경


validate_password_policy = LOW

validate-password-mixed-case-count = 0

validate-password-length = 1

validate-password-special-char-count = 0


5. 서비스 시작

service mysqld start 또는 mysql.server start

 

6. 접속 후 아래와 같은 오류나 나올 경우


mysql -uroot -p


mysql> SELECT 1;


ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.


한번 더 비밀번호를 설정해 줌


mysql> SET PASSWORD = PASSWORD('비번'); //password 함수를 사용하는건 deprecated 되었다고 함


mysql> SET PASSWORD = '비번';