Database/MYSQL

MySQL 데이타베이스와 계정 생성하기

반화넬 2019. 3. 13. 14:50
반응형

MySQL 데이타베이스와 계정 생성하기.

utf8

 mysql 5.7 이상은 Create User 구문 사용
MySQL 5.7 이상
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;
MySQL 5.7 미만
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;

설치후 최초 root 암호를 변경할 경우 아래 구문 사용

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) 이며 각각의 의미는 아래와 같음


Policy
Tests Performed
0 or LOWLength
1 or MEDIUMLength; numeric, lowercase/uppercase, and special characters
2 or STRONGLength; numeric, lowercase/uppercase, and special characters; dictionary file




반응형