Php mysqli访问被拒绝(42000/1044)linux权限?
我得到了php错误 mysqli::mysqli():(42000/1044):拒绝用户访问 “sec_user01”@“localhost”到数据库“secure_login” 我使用以下方法创建了数据库:Php mysqli访问被拒绝(42000/1044)linux权限?,php,linux,mysqli,permissions,Php,Linux,Mysqli,Permissions,我得到了php错误 mysqli::mysqli():(42000/1044):拒绝用户访问 “sec_user01”@“localhost”到数据库“secure_login” 我使用以下方法创建了数据库: CREATE DATABASE `secure_login`; I created the user with CREATE USER 'sec_user'@'localhost' IDENTIFIED BY '**********************'; GRANT SELECT,
CREATE DATABASE `secure_login`;
I created the user with
CREATE USER 'sec_user'@'localhost' IDENTIFIED BY '**********************';
GRANT SELECT, INSERT, UPDATE ON `secure_login`.* TO 'sec_user'@'localhost';
我使用
include_once 'web_psl-config.php'; // As functions.php is not included
$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);
配置文件已成功包含。
这一直持续到几个小时前。
我能想到的唯一变化是,在我的php脚本中,我创建了一些具有755访问权限的文件夹。执行此脚本的文件的权限是否可能导致此错误
我真的被难住了
编辑:我用ADODB连接测试了这个
require('../scripts/adodb5/adodb.inc.php');
$ADODB_CACHE_DIR = 'adodb5cache';
$Host = "localhost";
$Database = "secure_login";
$Databasetype ="mysql";
// lijst users en passwd
$DbAdminUser="sec_user01";
$DbAdminUserPassword="**************";
$debug = true; //debug on
//$debug = false; //debug off
//admin connection
$dbconn = ADONewConnection($Databasetype);
$dbconn->Connect($Host, $DbAdminUser, $DbAdminUserPassword, $Database);
$query="SELECT * FROM members;";
$ammount=$dbconn->GetAll($query);
print_r($ammount);
这是有效的。这是mysqli中的某种bug吗?
我真的希望我不必重写来使用ADODB。尝试使用这些凭据登录phpmyadmin。如果失败,则您的凭据可能不匹配。grant语句格式错误
GRANT SELECT, INSERT, UPDATE ON `secure_login`.* TO 'sec_user'@'localhost'; is wrong
GRANT SELECT, INSERT, UPDATE ON secure_login.* TO 'sec_user'@'localhost'; works.
为什么它第一次工作我不知道。我以前有过几次这个错误,据我所知,这个错误的局限性在于很多因素都可能导致它,首先,也是最重要的是尝试重置密码,你这样做的方式是进入终端并键入密码 $mysqladmin-u root-p'oldpassword'密码newpass 请注意在oldpassword、password和newpass中填写您的凭据 然后试试我的php脚本,它会告诉你哪些字段是空白的,如果这些字段还是空白的话,它会使用默认参数。弹出的评论也将在10秒内消失 文件1 index.php
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" /><meta http-equiv="content-language" content="en-US" />
<title>MySQL Connection test</title>
<script type="text/javascript">
window.onload = function()
{
timedHide(document.getElementById('messages'), 10);
}
function timedHide(element, seconds)
{
if (element) {
setTimeout(function() {
element.style.display = 'none';
}, seconds*1000);
}
}
</script>
</head>
<body>
<span id="messages">
<?php include "constant.php"; ?>
</span>
</body>
</html>
MySQL连接测试
window.onload=函数()
{
timedHide(document.getElementById('messages'),10);
}
函数timedHide(元素,秒)
{
if(元素){
setTimeout(函数(){
element.style.display='none';
},秒*1000);
}
}
文件2
constant.php
<?php
$database_ip = ""; //database ip adress goes inside quotes
$database_port = ""; //database port goes inside quotes
$database_name = ""; //database name goes inside quotes
$database_admin_user = ""; //admin username goes inside quotes
$database_admin_pass = ""; //admin password goes inside quotes
//do not modify anything past this point unless you know php well.
$database_link = null;
$database_defaults = array("127.0.0.","3306","MySQL","root","");
$error_defaults = array("error_no_101" => "required field *IP is empty, using default parameters!",
"error_no_102" => "required field *PORT is empty, using default parameters!",
"error_no_103" => "required field *NAME is empty, using default parameters!",
"error_no_104" => "required field *USER is empty, using default parameters!",
"error_no_105" => "required field *PASS is empty, using default parameters!");
if(empty($database_ip)){
$database_ip = $database_defaults[0];
echo $error_defaults["error_no_101"] . "<br/>";
}
if(empty($database_port)){
$database_port = $database_defaults[1];
echo $error_defaults["error_no_102"] . "<br/>";
}
if(empty($database_name)){
$database_name = $database_defaults[2];
echo $error_defaults["error_no_103"] . "<br/>";
}
if(empty($database_admin_user)){
$database_admin_user = $database_defaults[3];
echo $error_defaults["error_no_104"] . "<br/>";
}
if(empty($database_admin_pass)){
$database_admin_pass = $database_defaults[4];
echo $error_defaults["error_no_105"] . "<br/>";
}
$database_link = mysqli_connect($database_ip, $database_admin_user, $database_admin_pass, $database_admin_pass);
if (!$database_link) {
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
echo 'Success... ' . mysqli_get_host_info($database_link) . "\n";
mysqli_close($database_link);
?>
我希望这有助于(在用户权限中添加一些权限(插入选择更新除外)时,此错误消失! 因此,使用用户名和数据库名在cpanel中添加所有特权
当我登录到phpmyadmin时,我可以登录,但我看不到数据库。在表USER\u PRIVILEGES中,我看到被授予的表\u CATALOG PRIVILEGE\u TYPE是\u GRANTABLE'sec\u user01'@'localhost'def用法否,但我不明白为什么我使用ADODB连接时没有问题,但mysqli连接会给我这个错误。请使用phpmyad中的root登录从那开始,你就有特权了!