(这是我的第一个问题,如果我违反了任何惯例,我提前道歉!)
这是我第一次尝试创建 shell 脚本。我尝试通过在命令行中指定它们以及 shell 脚本来创建新的数据库、用户和密码。我的 root 用户名和密码是在 shell 脚本中指定的。以下是我的 shell 脚本,它执行此操作:
/bin/sh #!/bin/sh
# 创建表
主用户=“root”
主密码=“哑密码”
# 要求命令行上有一个参数
如果 [ $# -ne 3 ]; 那么
echo "Usage: createdb.sh dbname dbuser dbpassword"; exit 1;
菲
数据库名称="$1"
数据库用户=“$2”
数据库密码="$3"
#echo $数据库名称
#回显 $dbuser
#回显 $dbpassword
mysql -u“$masteruser”-p“$masterpassword”<<EOF
创建数据库 $1;授予 $1.* 上的所有权限至由 '$3' 标识的 '$2';
刷新权限
末梢血
我从命令行运行它,如下所示:
./shellscriptname.sh 新数据库名称 新数据库用户 新数据库密码
多次运行此脚本(成功创建数据库)后,当我尝试连接时,发生了以下情况:
# mysql --user root --password dumbpassword
输入密码:错误 1049(42000):未知数据库“dumbpassword”
我不知道为什么会这样。(注意:flush permission 后没有分号)
为什么它不再工作了?我很好奇,因为我找不到我的脚本有什么问题。这个也不起作用:
mysql -u root -p 密码
我更感兴趣的是找出为什么会发生这种情况,而不是解决这个问题。所以我想我会问这里的专家!
答案1
您应该使用以下内容
mysql --user root --password=dumbpassword
或者
mysql -u root -pdumbpassword
请注意,-p/--password 和密码本身之间没有空格。
答案2
登录mysql的正确格式是:
mysql -u username -p mydbname
这允许您登录数据库“mydbname”。相反,您已将密码作为数据库名称传递,因此 mySQL 告诉您它找不到数据库“dumbpassword”
尝试这个:
mysql -u username -p
这将允许您在提示输入密码后登录到 mysql,然后您可以使用以下命令选择数据库:
use mydbname
如果您在没有 u/p 开关的情况下运行 mysql,它将从当前上下文中获取用户名和密码。