0

このスクリプトを使用して、データベースをインストールして作成し、ユーザーと権限を編集しています。

sudo yum install mysql-server mysql-client -y

MYSQL_NAME="databasename"
MYSQL_USER="newuser"
MYSQL_PASS="12341234"
MYSQL_ROOTPWD=`openssl rand -base64 12`
MYSQL_TMPFILE=`mktemp --suffix=.sql`

echo "UPDATE mysql.user SET Password=PASSWORD('$MYSQL_ROOTPWD') WHERE User='root';" | tee -a $MYSQL_TMPFILE
echo "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');" | tee -a $MYSQL_TMPFILE
echo "DELETE FROM mysql.user WHERE User='';" | tee -a $MYSQL_TMPFILE
echo "DROP DATABASE test;" | tee -a $MYSQL_TMPFILE
echo "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';" | tee -a $MYSQL_TMPFILE
echo "CREATE DATABASE $MYSQL_NAME CHARACTER SET 'utf8';" | tee -a $MYSQL_TMPFILE
echo "GRANT ALL ON $MYSQL_NAME.* TO '$MYSQL_USER'@'127.0.0.1' IDENTIFIED BY '$MYSQL_PASS';" | tee -a $MYSQL_TMPFILE
echo "GRANT ALL ON test_$MYSQL_NAME.* TO '$MYSQL_USER'@'127.0.0.1' IDENTIFIED BY '$MYSQL_PASS';" | tee -a $MYSQL_TMPFILE
echo "FLUSH PRIVILEGES;" | tee -a $MYSQL_TMPFILE

cat $MYSQL_TMPFILE | mysql -u root
rm $MYSQL_TMPFILE

次に、VM を実行してデータベースにアクセスしようとすると、ユーザーなしではアクセスできません。root パスワードと newuser パスワードが適合しないと表示されます。スクリプトが終了したら、両方のパスワードをファイルに保存します。mysqlのどこに問題があるかを知るための助けはありますか??

VM を破棄して再試行すると、Can't connect to local MySQL server through socket '/var/mysql/mysql.sock' (38) というエラーが表示されることがあります。

Ubuntu 13 で実行しており、VM は CentOS 6 です。

4

1 に答える 1