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 = '비번';