在localhost中连接到MYSQL的问题

时间:2014-08-17 15:44:34

标签: php mysql

我第一次使用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);
}

3 个答案:

答案 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();
        }