본문 바로가기
Database/MYSQL

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

by 반화넬 2019. 3. 13.
반응형

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




반응형