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_USER启用了 mod,因此GRANT无法创建新用户(此外,通过创建用户GRANT可能无法在 5.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 回答