我第一次使用php连接到localhost中的数据库。我已将用户名设置为root,密码为XXXX。但是,我无法连接;我收到这个错误:
警告:mysqli :: real_connect()[mysqli.real-connect] :( 28000/1045): 用户'root'@'localhost'访问被拒绝(使用密码:YES) 第19行/home/as1609/public_html/ParseBanksPhase1/db.php连接 错误(1045)访问被拒绝用户'root'@'localhost'(使用 密码:是)
我用来连接我的数据库的php文件如下所示。关于什么可能出错的任何想法?
<?php
$MYSQL_CONFIG=array(
'host'=>'localhost',
'user'=>'root',
'password'=>'XXXX',
'db'=>'csv_parse',
'encoding'=>'utf8',
);
$mysqli = mysqli_init();
if (!$mysqli) {
die('mysqli_init failed');
}
if (!$mysqli->options(MYSQLI_INIT_COMMAND, 'SET NAMES ' . $MYSQL_CONFIG['encoding'])) {
die('Setting MYSQLI_INIT_COMMAND failed');
}
if (!$mysqli->real_connect($MYSQL_CONFIG['host'], $MYSQL_CONFIG['user'], $MYSQL_CONFIG['password'], $MYSQL_CONFIG['db'])) {
die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);
}
答案 0 :(得分:0)
您的php不允许本地主机连接。 我不知道你是什么操作系统,但google“启用root access mysql”。这是一个linux示例http://benrobb.com/2007/01/15/howto-remote-root-access-to-mysql/
答案 1 :(得分:0)
用户'root'@'localhost'
没有数据库csv_parse
的权限。
您可以使用以下命令向用户添加所有权限:
GRANT ALL PRIVILEGES ON csv_parse.* to 'root'@'localhost' IDENTIFIED BY 'XXXX';
如果您不想添加所有权限,可以列出用户应对数据库拥有的权限:http://dev.mysql.com/doc/refman/5.1/en/grant.html
答案 2 :(得分:0)
由于Permission,你可能会遇到这个问题,你能告诉我你用于数据库的软件是什么软件吗? (MySQL,phpmyadmin,SQL Server等)
我建议使用PDO MySQL登录格式,比Mysqli Connect更安全。
以下是您的代码看起来像的示例:
设置数组:
$MYSQL_CONFIG = array(
'host'=>'localhost',
'user'=>'root',
'password'=>'XXXX',
'db'=>'csv_parse',
'encoding'=>'utf8',
);
使用错误管理通过PDO进行连接:
try {
$Establishment = new PDO("mysql:host=$MYSQL_CONFIG['host'];dbname=$MYSQL_CONFIG['db']", $MYSQL_CONFIG['user'], $MYSQL_CONFIG['password']);
$Establishment->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $MySQLerror) {
echo "Connection failed: " . $MYSQLerror->getMessage();
}