MySQL 데이타베이스와 사용자 계정 생성하기
- 1 MySQL 데이타베이스와 계정 생성하기.
- 1.1 utf8
- 1.1.1 MySQL 5.7 이상
- 1.1.2 MySQL 5.7 미만
- 1.2 utf8mb4
- 1.3 ERROR 1044 (42000): 처리
- 1.1 utf8
- 2 MySQL 암호 변경
- 2.1 SET PASSWORD 사용
- 2.2 Alter user 사용
- 3 MySQL password policy 변경
MySQL 8 은 utf8mb 가 기본 character set 이고 collation 으로는 utf8mb4_0900_ai_ci 를 사용하고 있으니 생략해도 됩니다.
MySQL Create Database & user account
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;
MySQL 8 에 추가된 utf8mb4_0900_ai_ci collation 사용(생략 가능)
utf8mb4 & utf8mb4_0900_ai_ci
ERROR 1044 (42000): 처리
원격지에서 접속시 grant Privileges 를 막아 놓아서 발생하며 다음 쿼리로 어느 서버에서 접속해야 권한이 허용되는지 확인후 해당 서버에서 로그인(원격지 호스트를 지정하는 -h 옵션 빼고 연결)
MySQL 암호 변경
SET PASSWORD 사용
Alter user 사용
설치후 최초 root 암호를 변경할 경우 아래 구문 사용
MySQL password policy 변경
다음과 같이 암호 규칙에 맞지 않는다는 에러가 나며 암호 변경이 되지 않을 경우 해결책
validate password plugin 삭제
권장하지 않음
mysql root 로 로그인한 후에 다음 명령어 실행후 mysql 재구동
암호 규칙을 낮게 설정
my.cnf에 다음과 같이 설정하고 mysql 재구동
기본 설정은 1(MEDIUM) 이며 각각의 의미는 아래와 같음
Policy | Tests Performed |
---|---|
| Length |
| Length; numeric, lowercase/uppercase, and special characters |
| Length; numeric, lowercase/uppercase, and special characters; dictionary file |