0

我正在对一个单独的 mySQL 数据库进行测试,我希望该数据库有一个测试用户“john”。问题是用户存在于不同项目的另一个测试数据库中。我只想在我所有不同的测试数据库上为我的主机“localhost”使用一个用户“john”,但它不会让我这样做,因为该用户存在于不同的数据库中。

有没有办法为我的所有测试数据库使用我的用户“john”,或者每次我想测试某些东西时我需要创建一个不同的用户?因为它已经存在,我试图只使用它,但访问被拒绝。

我的意思是,每次我想从事不同的项目或测试其他东西时,我都可以创建新用户,但这似乎是不必要的,也是不可取的。

蒂亚:)

4

2 回答 2

1

首先检查您当前的权利;

mysql> show grants for 'john'@'localhost';
+--------------------------------------------------------------------------------------------+
| Grants for john'@'localhost                                                                |
+--------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'john'@'localhost' IDENTIFIED BY PASSWORD '0cdf93684d757e1f'         |
| GRANT ALL PRIVILEGES ON `test_database_1`.* TO 'john'@'localhost' WITH GRANT OPTION        |
+--------------------------------------------------------------------------------------------+

然后做一个'GRANT ALL'。如果您遗漏密码,则 mysql 将保留当前密码;

mysql> grant all on *.* to 'john'@'localhost';
Query OK, 0 rows affected (0.01 sec)

mysql> show grants for 'john'@'localhost';
+-----------------------------------------------------------------------------------------------+
| Grants for stubby@127.0.0.1                                                                   |
+-----------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'john'@'localhost' IDENTIFIED BY PASSWORD '0cdf93684d757e1f'   |
| GRANT ALL PRIVILEGES ON `test_database_1`.* TO 'john'@'localhost' WITH GRANT OPTION       |
+-----------------------------------------------------------------------------------------------+

那应该这样做。

于 2013-09-14T20:23:35.970 回答
0

您需要从 MySQL 提示符中尝试类似的操作。

GRANT ALL PRIVILEGES ON *.* TO john@localhost identified by 'johnspassword';
flush privileges;

也检查一下

于 2013-09-14T20:18:20.753 回答