sql >> データベース >  >> RDS >> Mysql

bashスクリプトでmysqlデータベースとユーザーを作成します

    これが私が使用するものです: https://raw.githubusercontent .com / saadismail / useful-bash-scripts / master / db.sh

    あなたの場合、これを使用することができます:

    # create random password
    PASSWDDB="$(openssl rand -base64 12)"
    
    # replace "-" with "_" for database username
    MAINDB=${USER_NAME//[^a-zA-Z0-9]/_}
    
    # If /root/.my.cnf exists then it won't ask for root password
    if [ -f /root/.my.cnf ]; then
    
        mysql -e "CREATE DATABASE ${MAINDB} /*\!40100 DEFAULT CHARACTER SET utf8 */;"
        mysql -e "CREATE USER ${MAINDB}@localhost IDENTIFIED BY '${PASSWDDB}';"
        mysql -e "GRANT ALL PRIVILEGES ON ${MAINDB}.* TO '${MAINDB}'@'localhost';"
        mysql -e "FLUSH PRIVILEGES;"
    
    # If /root/.my.cnf doesn't exist then it'll ask for root password   
    else
        echo "Please enter root user MySQL password!"
        echo "Note: password will be hidden when typing"
        read -sp rootpasswd
        mysql -uroot -p${rootpasswd} -e "CREATE DATABASE ${MAINDB} /*\!40100 DEFAULT CHARACTER SET utf8 */;"
        mysql -uroot -p${rootpasswd} -e "CREATE USER ${MAINDB}@localhost IDENTIFIED BY '${PASSWDDB}';"
        mysql -uroot -p${rootpasswd} -e "GRANT ALL PRIVILEGES ON ${MAINDB}.* TO '${MAINDB}'@'localhost';"
        mysql -uroot -p${rootpasswd} -e "FLUSH PRIVILEGES;"
    fi
    


    1. WHERE句を動的/プログラムでSQLに追加します

    2. MySQLで空の値を許可する一意の制約

    3. mySQLの外部キーとNULL

    4. 接続が失われた/切断されたトランザクションでのMySQLロールバック