Php 用户的MySQL访问被拒绝';管理员'@';本地主机';(使用密码:是)
是的,我知道这是一个常见的问题。但我什么都试过了,却无法解决这个问题 所以我使用的是plesk 12.5,我可以用这个使用散列密码的脚本从终端登录mysql:Php 用户的MySQL访问被拒绝';管理员'@';本地主机';(使用密码:是),php,mysql,database,plesk,Php,Mysql,Database,Plesk,是的,我知道这是一个常见的问题。但我什么都试过了,却无法解决这个问题 所以我使用的是plesk 12.5,我可以用这个使用散列密码的脚本从终端登录mysql: MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql -u admin 我甚至可以在添加-h localhost时登录。 但当我从php脚本登录时,我无法登录 <?php $mysqli = new mysqli("localhost/ip adress", "admin", "plesk encr
MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql -u admin
我甚至可以在添加-h localhost时登录。
但当我从php脚本登录时,我无法登录
<?php
$mysqli = new mysqli("localhost/ip adress", "admin", "plesk encrypted password", "database");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
我得到以下信息:
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY PASSWORD 'NOT the plesk cleartext password'
显示的密码以星号(*)开头,后跟随机文本和数字。
我试图使用此密码访问,但根本无法识别
我觉得这很奇怪,但我仍然找不到解决方案。$mysqli=newmysqli(“localhost/ip地址”、“admin”、“实际密码”您输入的不是加密密码”、“数据库”) $mysqli=newmysqli(“本地主机/ip地址”、“管理员”、“您输入的真实密码不是加密密码”、“数据库”) mysql和任何其他合适的工具都不会以明文或加密格式存储您的密码。它会散列并销毁您作为密码输入的字符串,这样每当您输入正确的密码时,它都可以访问该字符串,而不可能从mysql本身恢复密码 你的格兰特命令没有问题,这就是它应该返回的 以下是一个简单的示例,而不是实际过程: 我的密码是123456 加密格式为abcdef 当我输入加密格式(abcdef)时,mysql将其转换为123456 现在它已经有了明文密码,它将使用mysql自己的方法对其进行散列,比如删除字符、横向移动字符串、使用斐波那契序列添加ASCII值,或者程序员选择的任何其他方法 假设我的哈希方法是删除第一个和最后一个字符,然后在剩余字符的ASCII val中添加2 第1行:123456 第2行:2345 第3行:4567 4567是我的哈希密码,因此show grants将显示:
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY PASSWORD '4567'
而不是123456mysql和任何其他体面的工具都不会以明文或加密格式存储您的密码。它将散列并销毁您作为密码输入的字符串,以便它可以在您每次输入正确密码时访问该字符串,而不可能从mysql本身恢复密码 你的格兰特命令没有问题,这就是它应该返回的 以下是一个简单的示例,而不是实际过程: 我的密码是123456 加密格式为abcdef 当我输入加密格式(abcdef)时,mysql将其转换为123456 现在它已经有了明文密码,它将使用mysql自己的方法对其进行散列,比如删除字符、横向移动字符串、使用斐波那契序列添加ASCII值,或者程序员选择的任何其他方法 假设我的哈希方法是删除第一个和最后一个字符,然后在剩余字符的ASCII val中添加2 第1行:123456 第2行:2345 第3行:4567 4567是我的哈希密码,因此show grants将显示:
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY PASSWORD '4567'
而不是123456在
show grants
中显示的密码是加密密码,不是实际密码。谢谢,我现在知道了,但它仍然不能解决我无法从php连接的问题。show grants
中显示的密码是加密密码,不是实际密码。谢谢,我现在知道了,但是它仍然不能解决我无法从php连接的问题。很好的尝试,但是没有。当我从终端登录时,我还必须使用加密的密码。很好的尝试,但没有。当我从终端登录时,我还必须使用加密密码。谢谢你提供的信息,这解释了密码授予的显示,但我仍然无法使用3个密码(我自己的密码、plesk加密密码和mysql密码)中的任何一个从php脚本进入数据库,所以我认为这不是密码问题。哦,我以为你可以登录。顺便说一句,我总是使用明文密码。我该怎么做才能避免将此密码发送到github repo?好问题!我使用环境变量。我没有硬编码密码,而是使用类似$_ENV['MYSQL\u PASS']的东西,您可以使用export MYSQL\u PASS=yourpass运行脚本;phpYourscript.phpI从www文件夹中获取了带有密码的脚本。但是是的,我只是把密码直接放在脚本里。我想这应该不是个问题。谢谢你提供的信息,这解释了密码授予的显示,但是我仍然无法使用3个密码(我自己的密码、plesk加密密码和mysql密码)中的任何一个从php脚本进入数据库,所以我认为这不是密码问题。哦,我以为你可以登录。顺便说一句,我总是使用明文密码。我该怎么做才能避免将此密码发送到github repo?好问题!我使用环境变量。我没有硬编码密码,而是使用类似$_ENV['MYSQL\u PASS']的东西,您可以使用export MYSQL\u PASS=yourpass运行脚本;phpYourscript.phpI从www文件夹中获取了带有密码的脚本。但是是的,我只是把密码直接放在脚本里。我想这不应该是个问题。