mysql_사용자_계정_생성

MySQL 사용자 계정 생성

MySql5.7 까지만 하더라도 아래와 같이 계정 생성과 동시에 DB에 권한을 부여할 수 있었다.

mysql> grant all privileges on DB이름.* to 계정ID@'%' identified by '계정비밀번호' with grant option;
mysql> flush privileges ;

그러나 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

로그인하면 댓글을 남길 수 있습니다.
  • mysql_사용자_계정_생성.txt
  • 마지막으로 수정됨: 2024/12/12 10:29
  • 저자 koov