MySQL 데이타베이스와 계정 생성하기.
utf8
mysql 5.7 이상은 Create User 구문 사용
CREATE DATABASE homestead CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER 'homestead' @ 'localhost' IDENTIFIED BY 'secret' PASSWORD EXPIRE NEVER;
GRANT ALL PRIVILEGES ON homestead.* TO 'homestead' @ 'localhost' ;
flush privileges ;
|
CREATE DATABASE homestead CHARACTER SET utf8 COLLATE utf8_bin;
GRANT ALL PRIVILEGES ON homestead.* TO 'homestead' @ 'localhost' IDENTIFIED BY 'secret' ;
flush privileges ;
|
utf8mb4
위 구문에 CHARATER SET 과 COLLATE 추가
CREATE DATABASE homestead CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
CREATE USER 'homestead' @ 'localhost' IDENTIFIED BY 'secret' PASSWORD EXPIRE NEVER;
GRANT ALL PRIVILEGES ON homestead.* TO 'homestead' @ 'localhost' ;
flush privileges ;
|
ERROR 1044 (42000): 처리
ERROR 1044 ( 42000 ): Access denied for 'root' With All Privileges
|
원격지에서 접속시 grant Privileges 를 막아 놓아서 발생하며 다음 쿼리로 어느 서버에서 접속해야 권한이 허용되는지 확인후 해당 서버에서 로그인(원격지 호스트를 지정하는 -h 옵션 빼고 연결)
SELECT host,user,password,Grant_priv,Super_priv FROM mysql.user; |
MySQL 암호 변경
SET PASSWORD 사용
SET PASSWORD [FOR user] = password_option
password_option: {
'auth_string'
| PASSWORD( 'auth_string' )
}
|
SET PASSWORD FOR 'homestead' @ 'localhost' = 'secret' ;
|
Alter user 사용
alter USER 'homestead' @ 'localhost' IDENTIFIED BY 'secret' PASSWORD EXPIRE NEVER;
|
ALTER USER 'root' @ 'localhost' IDENTIFIED BY 'secret123' ;
|
MySQL password policy 변경
다음과 같이 암호 규칙에 맞지 않는다는 에러가 나며 암호 변경이 되지 않을 경우 해결책
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
validate password plugin 삭제
mysql root 로 로그인한 후에 다음 명령어 실행후 mysql 재구동
uninstall plugin validate_password;
|
암호 규칙을 낮게 설정
my.cnf에 다음과 같이 설정하고 mysql 재구동
[mysqld]
validate_password_policy=LOW
default_password_lifetime= 0
|
기본 설정은 1(MEDIUM) 이며 각각의 의미는 아래와 같음