Php 用户@localhost已存在。can';t为第二个数据库创建测试用户

Php 用户@localhost已存在。can';t为第二个数据库创建测试用户,php,mysql,sql,Php,Mysql,Sql,我正在一个单独的mySQL数据库上进行测试,我希望该数据库有一个测试用户“john”。问题是用户存在于另一个测试数据库中,用于不同的项目。我只想在所有不同的测试数据库上为主机“localhost”使用一个用户“john”,但它不允许,因为该用户存在于不同的数据库中 是否有一种方法可以在我所有的测试数据库中使用我的用户“john”,或者每次我想要测试某个东西时,我是否需要使用不同的用户?因为它已经存在,我试图直接使用它,但访问被拒绝 我的意思是,每当我想在不同的项目上工作或测试其他东西时,我可以创

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

是否有一种方法可以在我所有的测试数据库中使用我的用户“john”,或者每次我想要测试某个东西时,我是否需要使用不同的用户?因为它已经存在,我试图直接使用它,但访问被拒绝

我的意思是,每当我想在不同的项目上工作或测试其他东西时,我可以创建新用户,但这似乎是不必要的,也是不可取的


TIA:)

您需要从MySQL提示符中尝试类似的内容

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

也要检查。

首先检查您当前的权限

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       |
+-----------------------------------------------------------------------------------------------+

这样就可以了。

谢谢。这样的全球访问安全吗?它现在出现在用户列表中,但我是否因为这样设置而更容易受到攻击?这真的不是一个好方法。
*.
应替换为需要将john指定为用户的数据库名称。上面的命令赋予john对可用数据库的完全权限,我个人认为这不是一个好主意。