无法使用XAMPP连接到MySQL数据库

时间:2013-11-25 19:37:48

标签: php mysql

我是编程新手,我一直在尝试从Murachs PHP和MySQL教学书中运行一个PHP应用程序,源代码实际上来自他们的网站,但一直收到错误信息。错误信息如下;

“数据库错误连接到数据库时出错。必须按照附录中的说明安装数据库.MySQL必须按照第1章中的说明运行。错误消息:SQLSTATE [HY000] [1045]用户拒绝访问'mgs_user'@'localhost'(使用密码:YES)“

我下载了XAMPP并且运行正常但由于某种原因我无法使用MySQL数据库。在过去的两天里,我搜索并搜索了一些搜索,但我似乎无法找到解决方案。

我记得在安装过程中设置了用户名和密码,我昨天通过PHPMyAdmin设置了一个名为“root”和密码的用户名,但为什么这个应用程序没有运行?

感谢任何帮助。

更新#1

以下是创建数据库,用户和密码的代码示例。

这是从Murach的网站下载的,因此代码应该是好的。我认为XAMPP / MySQL出现了一些错误,它不允许连接到数据库。

/*****************************************
* Create the my_guitar_shop1 database
*****************************************/
DROP DATABASE IF EXISTS my_guitar_shop1;
CREATE DATABASE my_guitar_shop1;
USE my_guitar_shop1;  -- MySQL command

-- Create a user named mgs_user
GRANT SELECT, INSERT, UPDATE, DELETE
ON *
TO mgs_user@localhost
IDENTIFIED BY 'pa55word';

更新#2

我在PHPMyAdmin中创建了用户“mgs_user @ localhost”并赋予了权限,现在我收到以下错误;

“数据库错误 连接数据库时出错。

必须按照附录中的说明安装数据库。

MySQL必须按第1章所述运行。

错误消息:SQLSTATE [HY000] [1049]未知数据库'my_guitar_shop1'“

代码似乎是正确的,但它不是在MySQL中创建用户或数据库。

更新#3

通过PHPMyAdmin创建了数据库“my_guitar_shop1”,现在我在每条错误消息的下方都会收到相应代码的错误;

(!)注意:第16行的C:\ xampp \ htdocs \ book_apps \ ch05_guitar_shop \ product_manager \ index.php中的未定义索引:category_id

if ($action == 'list_products') {
// Get the current category ID
$category_id = $_GET['category_id'];    <-----this is line #16
if (!isset($category_id)) {
    $category_id = 1;
}

(!)致命错误:在第15行的C:\ xampp \ htdocs \ book_apps \ ch05_guitar_shop \ model \ category_db.php中的非对象上调用成员函数fetch()

function get_category_name($category_id) {
global $db;
$query = "SELECT * FROM categories
          WHERE categoryID = $category_id";
$category = $db->query($query);
$category = $category->fetch();                <-----this is line #15
$category_name = $category['categoryName'];
return $category_name;
}

2 个答案:

答案 0 :(得分:1)

最可能的原因是你没有创建'mgs_user'用户,为此你可以这样做:

CREATE USER 'mgs_user'@'localhost' IDENTIFIED BY 'password';

然后使用以下方式授予适当的权限:

GRANT ALL PRIVILEGES ON databaseName.* To 'mgs_user'@'localhost' IDENTIFIED BY 'password';

答案 1 :(得分:0)

最初从本书开始时我遇到了同样的问题,错误信息给出的描述“按照第1章中的说明”没有任何帮助。但是,如果您转到本书后面的附录,它会详细说明如何通过phpMyAdmin运行脚本,该脚本将创建练习所需的相应数据库。如果您正在运行Windows,详细信息请参见第818页,它为我解决了问题。希望有所帮助。