MySQL 사용자 계정 생성
MySQL 5
MySql5.7
까지만 하더라도 아래와 같이 계정 생성과 동시에 DB에 권한을 부여할 수 있었다.
mysql> grant all privileges on DB이름.* to 계정ID@'%' identified by '계정비밀번호' with grant option; mysql> flush privileges ;
MySQL 8
그러나 MySQL 8
에서는 해당 명령어가 동작하지 않고, 계정 생성과 DB 권한 부여를 각각 해줘야 한다.
mysql> create user 계정ID@'%' identified by '계정비밀번호' ; mysql> grant all privileges on DB이름.* to 계정ID@'%' with grant option; mysql> flush privileges;
위 작업을 한방에 할 수 있도록 스크립트를 생성하면 아래와 같다.
#!/bin/bash # 사용법: ./script.sh username password # 사용자 입력 확인 if [ "$#" -ne 2 ]; then echo "Usage: $0 <username> <password>" exit 1 fi # 변수 설정 USERNAME=$1 PASSWORD=$2 DBNAME=$USERNAME # MySQL root 사용자 정보 (필요에 따라 수정) MYSQL_ROOT_USER="root" MYSQL_ROOT_PASS="u:>+wjfek0Iy" # MySQL 명령 실행 mysql -u $MYSQL_ROOT_USER -p$MYSQL_ROOT_PASS <<EOF -- 데이터베이스 생성 CREATE DATABASE IF NOT EXISTS \`$DBNAME\`; -- 사용자 생성 CREATE USER IF NOT EXISTS '$USERNAME'@'%' IDENTIFIED BY '$PASSWORD'; -- 권한 부여 GRANT ALL PRIVILEGES ON \`$DBNAME\`.* TO '$USERNAME'@'%'; -- 권한 적용 FLUSH PRIVILEGES; EOF if [ $? -eq 0 ]; then echo "Database '$DBNAME' and user '$USERNAME' created successfully with all privileges." else echo "Failed to create database or user. Check your MySQL root credentials and settings." exit 1 fi
참조링크
로그인하면 댓글을 남길 수 있습니다.