我正在try 自动执行MySQL用户创建过程. 我想创建一个包含MySQL用户创建语句的临时文件, 那我会这样称呼它:

mysql-u root-root<temp

但我一直在使用mysql语法:


DROP DATABASE IF EXISTS mytestdatabase;
CREATE DATABASE mytestdatabase;
SELECT @password:="my password";
DELETE FROM mysql.user WHERE Host='localhost' AND User='mytestdatabase';
GRANT ALL PRIVILEGES ON mytestdatabase.* TO 'mytestdatabase'@'localhost' IDENTIFIED BY PASSWORD '@password';
FLUSH PRIVILEGES;

但是这条线

GRANT ALL PRIVILEGES ON mytestdatabase.* TO 'mytestdatabase'@'localhost' IDENTIFIED BY PASSWORD '@password';

(密码散列应为41位十六进制数字)

并不像我预期的那样被解读.

我怎么才能让这件事行得通呢?

推荐答案

为了回答出现错误的原因并显示差异:


A) Expects @password to be a hash string 1 value:

GRANT ALL PRIVILEGES 
    ON `mydb` . * TO 'username'@'localhost' IDENTIFIED 
BY
PASSWORD '@password';

Note the use of the 100 keyword!


B) Expects @password to be a clear-text string value:

GRANT ALL PRIVILEGES 
    ON `mydb` . * TO 'username'@'localhost' IDENTIFIED 
BY
'@password';

Note the 101 100 keyword!


1 Where "hash string" is the result of SELECT PASSWORD('clearTextPasswd'); - see Snowman's answer for an example.

Database相关问答推荐

将数据拆分为月份(以Postgres为单位

从 GCP 机密管理器中读取 .DER 值并将其保存到 .DER 文件

一个强大的 MySQL 管理工具,具有与 SQL Server Management Studio 类似的功能

分布式数据库管理系统 (DDBMS) 中的水平与垂直碎片

管理数据库中的产品计数

如何使用 SELECT WHERE IN() 保持订单?

当可伸缩性无关紧要时,NoSQL 与 SQL

从 XML 读取数据

SQL查询7天前的数据

向表中添加大量索引是否有缺点?

Meteor 如何执行数据库迁移?

Neo4j:逐步创建自动索引

C# 数据连接最佳实践?

是否有一个 postgres 命令来列出/删除所有materialized视图?

friendship数据库模式

使用 PHP/PDO 判断数据库表是否存在

PHP 可以与 MS SQL 数据库一起使用吗

遍历数据库中的每条记录 - Ruby on Rails / ActiveRecord

NoSQL 数据库是否使用或需要索引?

我应该标准化我的数据库吗?