사용자 생성
CREATE USER 명령어로 사용자 추가
CREATE USER 'guest'@'%' IDENTIFIED BY 'securepass123';
비밀번호가 필요하지 않은 경우 IDENTIFIED BY 절을 생략할 수 있습니다.
mysql.user 테이블 직접 삽입 (주의: 필드 값 필수)
INSERT INTO mysql.user (
Host, User, authentication_string,
ssl_cipher, x509_issuer, x509_subject
) VALUES (
'%', 'guest', PASSWORD('securepass123'),
'', '', ''
);
변경 사항 적용을 위해 권한 테이블을 새로 고쳐야 합니다:
FLUSH PRIVILEGES;
GRANT 문을 통한 사용자 생성 및 간단한 권한 부여
GRANT SELECT ON example_db.* TO 'app_user'@'localhost'
IDENTIFIED BY 'app_pass456' WITH GRANT OPTION;
사용자 및 권한 확인
-- 전체 사용자 정보 조회
SELECT User, Host, authentication_string FROM mysql.user;
-- 특정 사용자의 권한 확인
SHOW GRANTS FOR 'app_user'@'localhost';
사용자 삭제
DROP USER 'guest'@'%';
권한 부여
GRANT SELECT, INSERT, UPDATE, DELETE
ON project_db.* TO 'developer'@'%'
IDENTIFIED BY 'devpass789'
WITH GRANT OPTION;
권한 회수
REVOKE INSERT ON project_db.* FROM 'developer'@'%';
비밀번호 변경
-- 특정 사용자 비밀번호 변경 (재로그인 필요)
SET PASSWORD FOR 'admin'@'localhost' = PASSWORD('new_secure_pwd');
-- 현재 사용자 비밀번호 변경
SET PASSWORD = PASSWORD('current_pwd');
명령행에서 비밀번호 변경 (mysqladmin)
mysqladmin -u admin -h localhost -p oldpass password newpass
mysqladmin -u root -p current_password password new_password
MariaDB 10.3 이상에서 root 무비밀번호 로그인 문제 해결
ALTER USER root@localhost
IDENTIFIED VIA mysql_native_password
USING PASSWORD('your_secure_password');
Ubuntu 18.04에서 root 비밀번호 없음 문제 해결
ALTER USER 'root'@'localhost'
IDENTIFIED WITH mysql_native_password BY 'my_root_password';
FLUSH PRIVILEGES;
문제 발생 시 대응 방법
Access denied for user 'root'@'192.168.100.1'
원인: 기본 설치 시 루트 계정이 비밀번호 없이 접근 가능함.
해결 방법:
SELECT User, Host, authentication_string, plugin FROM mysql.user;
UPDATE mysql.user
SET plugin = 'mysql_native_password'
WHERE User = 'root';
FLUSH PRIVILEGES;