0

コマンドを実行した後にこのエラーが発生する理由を教えてください。

root@server1:/home# ./dbcreate.sh db_team1 team1 team1password
ERROR 1133 (42000) at line 1: Can't find any matching row in the user table

これは私が使用しているスクリプトです。

#!/bin/bash

MYSQL=`which mysql`
ROOTPASSWD=mypassword

Q1="CREATE DATABASE IF NOT EXISTS $1;"
Q2="SET PASSWORD FOR '$2'@'localhost'= PASSWORD('$3');"
Q3="GRANT ALL PRIVILEGES ON $1.* TO '$2'@'localhost' IDENTIFIED BY '$3';"
Q4="FLUSH PRIVILEGES;"
SQL="${Q1}${Q2}${Q3}${Q4}"

# Usage: $0 dbname dbuser dbpass"

$MYSQL -u root -p$ROOTPASSWD -e "$SQL"
4

3 に答える 3

1

NO_AUTO_CREATE_USERmod が有効になっているようでGRANT、新しいユーザーを作成できません (また、GRANT5.5 および 5.6 ではユーザーの作成が機能しない場合があります)。詳細については、ここを参照してください。

http://dev.mysql.com/doc/refman/5.1/en/server-sql-mode.html#sqlmode_no_auto_create_user

于 2012-05-10T14:30:54.367 に答える
0

ユーザーをデータベースに関連付ける前に、ユーザー作成ステートメントを追加します

CREATE USER your_username@localhost IDENTIFIED BY 'your_user_password';

これで問題は解決するはずです

于 2013-12-31T19:28:08.640 に答える
0

代わりに最後にこれを試してください:

エコー "$SQL" | mysql -u ルート -p

于 2014-09-05T22:39:12.590 に答える