【问题标题】:How to correctly query the mysql database from bash script?如何从 bash 脚本正确查询 mysql 数据库?
【发布时间】:2020-02-18 21:55:18
【问题描述】:

我一直在尝试使用 bash 脚本正确创建用户和数据库一个小时,但我仍然收到错误消息。我粘贴下面的代码。我会很感激你的帮助!

#!/bin/bash

username="useursur"
passworduser="dnfndfvjdngdg"

sudo mysql -u $username -p$passworduser <<EOF
    CREATE USER 'wpdb'@'localhost' IDENTIFIED BY 'fsafdasdfsadfasdf';
    CREATE DATABASE wpdb;
    GRANT ALL PRIVILEGES ON wpdb.* TO 'wpdb';
    FLUSH PRIVILEGES;
EOF

我把命令改成

sudo mysql -u $username -p$passworduser -e "CREATE USER 'wpdb'@'localhost' IDENTIFIED BY 'fsafdasdfsadfasdf';CREATE DATABASE wpdb;GRANT ALL PRIVILEGES ON wpdb.* TO 'wpdb';FLUSH PRIVILEGES;"

结果我得到这个错误:

mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1133 (42000) at line 1: Can't find any matching row in the user table

【问题讨论】:

  • 错误信息是什么?
  • mysql: [警告] 在命令行界面上使用密码可能是不安全的。第 1 行的错误 1396 (HY000):“wpdb”@“localhost”的操作 CREATE USER 失败
  • mysql: [警告] 在命令行界面上使用密码可能是不安全的。第 3 行出现错误 1133 (42000):在用户表中找不到任何匹配行
  • 将密码输入~/.my.cnf,而不是命令行!

标签: mysql bash


【解决方案1】:

GRANT 时需要指定用户和主机。

GRANT ALL PRIVILEGES ON wpdb.* TO 'wpdb';

应该是:

GRANT ALL PRIVILEGES ON wpdb.* TO 'wpdb'@'localhost';

【讨论】:

    猜你喜欢
    • 2017-03-16
    • 2013-08-15
    • 2014-03-24
    • 1970-01-01
    • 1970-01-01
    • 2021-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多