【问题标题】:problems with connection to MYSQL in localhost在 localhost 中连接到 MYSQL 的问题
【发布时间】:2014-10-10 15:04:58
【问题描述】:

我第一次使用 php 连接到本地主机中的数据库。我已将用户名设置为 root,密码为 XXXX。但是,我无法连接;我收到此错误:

警告:mysqli::real_connect() [mysqli.real-connect]: (28000/1045): 用户 'root'@'localhost' 的访问被拒绝(使用密码:YES) /home/as1609/public_html/ParseBanksPhase1/db.php 在第 19 行连接 错误 (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);
}

【问题讨论】:

  • 您似乎没有更改主机的默认密码。尝试使用空白密码(例如)'password'=>'',

标签: php mysql


【解决方案1】:

由于权限,您可能会遇到这个问题,您能告诉我您使用什么软件进行数据库结构吗? (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();
        }

【讨论】:

    【解决方案2】:

    您的 php 不允许本地主机连接。 我不知道你是什么操作系统,但谷歌“启用 root 访问 mysql”。这是一个linux示例http://benrobb.com/2007/01/15/howto-remote-root-access-to-mysql/

    【讨论】:

      【解决方案3】:

      用户'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

      【讨论】:

      • 试过了,但仍然收到相同的错误消息 GRANT ALL PRIVILEGES ON csv_parse.* to 'root'@'localhost' IDENTIFIED BY 'XXXX';
      猜你喜欢
      • 2020-01-22
      • 1970-01-01
      • 2012-11-12
      • 2021-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-01
      • 2019-05-18
      相关资源
      最近更新 更多