MySQL有两个不同的密码?

Jus*_*ien 3 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() );
Run Code Online (Sandbox Code Playgroud)

如果我要使用DEFINE('DB_PASS', '');它返回"拒绝访问用户'root'@'localhost'(使用密码:NO)",为什么似乎有两个单独的密码?

spe*_*593 5

问:为什么似乎有两个单独的密码?

答:因为您要作为两个不同的用户进行连接.

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

MySQL数据库"user"由部分标识:用户主机.

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

'username'@'localhost'
'username'@'127.0.0.1'
'username'@'%'
Run Code Online (Sandbox Code Playgroud)

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

SELECT user, host FROM mysql.user ;
Run Code Online (Sandbox Code Playgroud)

您可能需要查看MySQL参考手册的相关部分.

参考:https://dev.mysql.com/doc/refman/5.5/en/adding-users.html

注意:值localhostmysql.user表或一个连接是与TCP环回地址(127.0.0.1)的同义词.它无法解析为该IP地址或任何其他IP地址.这是一个特殊的价值.


Ste*_*hen 0

MySQL 默认使用 $user/$host/$password 比较,因此您当前的设置在 MySQL 中有两个不同的用户帐户 - root 和您在命令行上提供的任何用户名。每个都有自己的密码。

另外,如果帐户没有(即空)密码,则无需在 CLI 上指定 -p 标志