【问题标题】:Access denied for user 'root'用户“root”的访问被拒绝
【发布时间】:2012-04-07 06:01:00
【问题描述】:

我下载了一个 adobe flex mysql 脚本(来自我正在学习的教程)并在我的 sql 5.5 中运行该脚本。它创建了一个数据库,但它存储在我的 wamp 文件夹中:

C:\wamp\bin\mysql\mysql5.1.36\data

我有一个测试 php 页面,它应该打印出数据库中的数据(来自 adobe 教程)。

但是,当我从 localhost/test.php 加载测试页面时,它只是说:

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'localhost' (using password: YES) in C:\wamp\www\test.php on line 7
Error connecting to MySQL

如果我从 localhost:3306/test.php 运行它,我只会得到胡言乱语:

B???
5.1.36-community-log????nKm`zell?ÿ÷??????????????Z\Ap3JZcfVZD???ÿ„Got packets out of order

我使用什么密码——我的 wamp 密码/登录名,还是新的 mysql5.5 root 密码?我试过mysql5.5的root和密码,还是连接不上。

为什么 mysql5.5 会在我的旧 WAMP sql 数据文件夹下加载数据库? MySQL5.1 与 WAMP 安装,和 MySQL5.5 我单独安装是否有冲突?

【问题讨论】:

标签: mysql wamp mysql-error-1064


【解决方案1】:

在这个问题上浪费了一天的大部分时间后,结果我所要做的就是提供非本地主机名。我不知道为什么(允许用户从任何主机连接),但它有效!

root@base:~# mysql -u username -h hostname -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.

在 PHP 中:

Test 1807:
<?php
$username = "username";
$password = "password";
$hostname = "actualhostnamenotlocalhost"; 

$con = mysqli_connect($hostname, $username, $password);

// Check connection
if (mysqli_connect_errno($con)){
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

mysqli_close($con);    

?>
OK.

【讨论】:

    【解决方案2】:

    请在phpMyAdmin或my sql work bench的帮助下验证您是否使用了正确的密码

    如果这是全新安装,那么您将没有任何 root 密码

    您需要设置密码并使用设置的密码开始连接数据库

    如果您能够在不指定密码的情况下运行脚本,这意味着没有为数据库设置密码

    您可以将“使用密码”开关设置为 NO 并使用 root 连接

    【讨论】:

      【解决方案3】:

      更新我的phpmyadmin版本后同样的问题,原来是配置问题:

      步骤1)打开对应的phpmyadmin安装目录,将config.sample.inc.php复制到config.inc.php同目录下。

      步骤 2)打开 config.inc.php

      改变

      $cfg['Servers'][$i]['AllowNoPassword'] = **false**;
      

      $cfg['Servers'][$i]['AllowNoPassword'] = **true**;
      

      并保存文件。

      【讨论】:

      【解决方案4】:

      我几乎花了一整天的时间来解决这个问题,所以如果这对任何人有帮助,我解决了它 使用以下代码:

      // - Get Connection - //
      
      $this->dbCon = mysqli_connect($this->dbHost,$this->dbUser) or 
          die("Connection failed:<br/>" . mysqli_connect_error());
      
      // - Select Database - //
      
      mysqli_select_db($this->dbCon,$this->dbName) or
          die("Selection failed: <br/>" .   mysqli_connect_error());
      
      -and also by setting
      
        $cfg['Servers'][$i]['AllowNoPassword'] = true - in the config.inc.php file.
      

      希望有帮助

      【讨论】:

        猜你喜欢
        • 2013-07-28
        • 2017-07-10
        • 2023-03-20
        • 2017-10-04
        • 1970-01-01
        • 1970-01-01
        • 2013-08-22
        相关资源
        最近更新 更多