Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQLSTATE[28000][1045]_Mysql_Sql - Fatal编程技术网

Mysql SQLSTATE[28000][1045]

Mysql SQLSTATE[28000][1045],mysql,sql,Mysql,Sql,我在phpMyAdmin中以适当的权限创建了此用户 我已经阅读并有问题: 1) 如果我有用户名但密码不同,错误消息是否相同,或者它是否会给我一个不同的错误(我认为错误是相同的),但需要确定 2) 这个问题是否与硬盘空间太小有关 3) 使用GRANT选项将XXXXXXX%*上的所有权限授予“XXXXXXX”@“localhost” 我运行了此查询,此用户拥有全部权限: SQLSTATE[28000] [1045] Access denied for user 'XXXXX'@'localhost'

我在phpMyAdmin中以适当的权限创建了此用户

我已经阅读并有问题:

1) 如果我有用户名但密码不同,错误消息是否相同,或者它是否会给我一个不同的错误(我认为错误是相同的),但需要确定

2) 这个问题是否与硬盘空间太小有关

3)
使用GRANT选项将
XXXXXXX%
*上的所有权限授予“XXXXXXX”@“localhost”
我运行了此查询,此用户拥有全部权限:

SQLSTATE[28000] [1045] Access denied for user 'XXXXX'@'localhost' (using password: YES)
这样做对吗

4) 我可以访问app/etc/local.xml文件,如果有什么问题,我应该在那里检查一下,看看我是否走对了方向?我看到用户名适当地列在那里,但是。。。 在phpMyAdmin的任何地方,我似乎都找不到对livedb for dbname的引用,我可以在哪里查找

REVOKE ALL PRIVILEGES ON  `XXXXXXX_%` . * FROM  'XXXXXXX'@'localhost';

REVOKE GRANT OPTION ON  `XXXXXXX_%` . * FROM  'XXXXXXX'@'localhost';

GRANT ALL PRIVILEGES ON  `XXXXXXX_%` . * TO  'XXXXXXX'@'localhost';

我首先比较用户的密码

 <connection>
                <host><![CDATA[localhost]]></host>
                <username><![CDATA[XXXXXXX]]></username>
                <password><![CDATA[XXXXXXXXXX]]></password>
                <dbname><![CDATA[XXXXX_livedb]]></dbname>
                <initStatements><![CDATA[SET NAMES utf8]]></initStatements>
                <model><![CDATA[mysql4]]></model>
                <type><![CDATA[pdo_mysql]]></type>
                <pdoType><![CDATA[]]></pdoType>
确保行存在,
plugin
列显示
mysql\u native\u password
password\u expired
显示
N

如果所有这些都正常,则比较密码值。要获取要比较的哈希值,可以运行以下操作:

SELECT * FROM mysql.user WHERE User = 'XXXXX' AND Host = 'localhost' ;
然后将返回的值与
mysql.user
表中行的
Password
列中存储的值进行比较。如果散列值相同,则“mysecret”是该用户的有效密码


如果该特定行在
mysql.user
表中不存在,请注意localhost(
'@localhost
)上的匿名用户将优先于
XXXXX@%
帐户。(这让外行感到有些困惑。)

在MySQL中,用户由两件事来标识:
user
Host
。当您登录到MySQL时,MySQL服务器有一个特定的顺序,它在
MySQL.user
表中查找匹配的行。首先,它查找用户和主机的精确匹配

User='XXXXX'Host='localhost'

如果找到,那就是用户。。。它将检查密码(或任何身份验证机制,以查看是否允许连接)。如果未找到匹配项,则MySQL服务器将检查匿名用户

User='Host='localhost'

如果没有找到匹配项,则会检查:


User='XXXXX'Host='%'

谢谢您的关注this@walterwhite:我不太想问这个问题,但根据你的处理方式。。。这不是为了一个赚大钱的化学项目。。。它是?(我想不会。如果是的话,你的把手应该是海森堡,不是吗。)
 SELECT PASSWORD('mysecret')