Mysql SQLSTATE[28000][1045]
我在phpMyAdmin中以适当的权限创建了此用户 我已经阅读并有问题: 1) 如果我有用户名但密码不同,错误消息是否相同,或者它是否会给我一个不同的错误(我认为错误是相同的),但需要确定 2) 这个问题是否与硬盘空间太小有关 3)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'
使用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')