mysqli访问被拒绝(42000/1044)linux权限?

我得到的PHP错误

mysqli :: mysqli():(42000/1044):访问拒绝用户'sec_user01'@'localhost'到数据库'secure_login'

我创build了数据库:

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); 

configuration文件已成功包含。 这直到几个小时前。 我能想到的唯一改变就是在我的php脚本中,我用755访问做了一些文件夹。 是否有可能执行这个脚本的文件的权限导致这个错误?

我真的很难过

编辑:我testing了一个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中的某种错误吗? 我真的希望我不必重写使用ADODB。

尝试使用这些凭据登录到phpmyadmin。 如果不成功,那么您的凭证可能不匹配。

授权声明格式错误

 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“password”密码newpass

请注意填写您的凭据oldpassword,密码,和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> 

文件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的所有特权。

  1. 登录到您的cpanel(www.example.com/cpanel)
  2. 转到MySQL添加数据库向导
  3. 类似于“添加数据库”,“添加用户”你将有一个按钮添加用户“到”数据库“。
  4. 点击它,
  5. 添加的用户应该在“数据库”的“特权用户”下列出。