MySQL有两个不同的密码?

2022-05-09 00:00:00 php mysql mamp mamp-pro

我确定它们是不同事物的密码,但我不确定是什么。在终端连接MySQL时,我输入/usr/LOCAL/mysql/BIN/mysql -h host -u username -p,然后提示我输入密码,密码是''。但在使用PHP连接到MySQL时,我使用了以下代码,它可以正常工作

DEFINE('DB_HOST', 'localhost'); 
DEFINE('DB_USER', 'root'); 
DEFINE('DB_PASS', 'root'); 

$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASS,) or 
die('could not connect: '. mysqli_connect_error() );

如果我使用DEFINE('DB_PASS', '');它返回"拒绝访问用户‘根’@‘本地主机’(使用密码:no)",为什么会出现两个单独的密码?


解决方案

q:为什么显示为两个单独的密码?

A:,因为您以两个不同的用户身份连接。

每个用户都有自己的密码和权限。

MySQL数据库"用户"由两个部分标识:用户名称和主机。

例如,这三个不同的用户:

'username'@'localhost'
'username'@'127.0.0.1'
'username'@'%'

要查看您的数据库上定义的用户,您可以查询mysql.user表,例如

SELECT user, host FROM mysql.user ;

您可能需要查看《MySQL参考手册》的相关章节。

引用:https://dev.mysql.com/doc/refman/5.5/en/adding-users.html

注意:mysql.user表或连接中的localhost值不与TCP环回地址(127.0.0.1)同义。它不会解析到该IP地址或任何其他IP地址。它是特殊值。

相关文章