user @ localhost已存在。无法为第二个数据库创建测试用户

时间:2013-09-14 20:07:25

标签: php mysql sql

我正在单独的mySQL数据库上进行测试,我想为该数据库安装一个测试用户'john'。问题是用户存在于另一个测试数据库中以用于其他项目。我想在我所有不同的测试数据库中使用一个用户'john'作为我的主机'localhost',但它不会让我,因为该用户存在于不同的数据库中。

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

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

TIA:)

2 个答案:

答案 0 :(得分: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        |
+--------------------------------------------------------------------------------------------+

然后做一个'全部'。如果省略密码,那么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       |
+-----------------------------------------------------------------------------------------------+

那应该这样做。

答案 1 :(得分:0)

你需要在MySQL提示符下尝试这样的东西。

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

同时检查this