【问题标题】:Connecting to MySQL using Apache and PHP使用 Apache 和 PHP 连接到 MySQL
【发布时间】:2013-04-10 16:03:03
【问题描述】:

我目前在 Apache 2.2 上使用 PHP 5.. 我正在尝试连接到我的 Apache 服务器上的 MySQL 并创建一个名为 my_db 的数据库... 我有以下代码:

<?php
$con=mysqli_connect();
// Check connection
if (mysqli_connect_errno()){
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}else{
echo "Connected Successfully!";
}
// Create database
$sql="CREATE DATABASE my_db";
if (mysqli_query($con,$sql)){
echo "Database my_db created successfully";
}else{
echo "Error creating database: " . mysqli_error();
}
?> 

但是,当脚本运行时,我得到以下输出:

连接成功!创建数据库时出错:

请帮忙。这不是身份验证问题,因为“连接成功!”打印出来了……

提前谢谢你!

【问题讨论】:

  • 可能你没有权限在默认用户上创建数据库
  • 我怀疑您登录的 mysql 用户没有 CREATE 权限。一个 mysql 用户可以拥有一个或一组许多不同的权限。 |你知道你有没有phpmyadmin吗? :phpmyadmin.net/home_page/index.php PHPmyadmin 将使您更轻松地管理 mysql。如果您还没有它,请考虑安装它或使用 Navicat 等工具。
  • 要创建和删除数据库,应具有管理员权限。看看吧

标签: php mysql database apache connection


【解决方案1】:

您可以通过以下方式查询用户权限的概览:

SHOW GRANTS FOR 'user'@'host';

【讨论】:

    【解决方案2】:

    尝试在 mysql 命令行上创建一个新用户,授予该用户所有权限,然后以该新用户身份连接并尝试创建数据库。这应该可以解决您的问题。假设您在 localhost 上连接到 mysql,则创建新用户所需的代码是:

    bash# mysql --user=root -p
    
    mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost' WITH GRANT OPTION;
    

    【讨论】:

      【解决方案3】:

      替换 echo "Error creating database: " . mysqli_error();echo "Error creating database: " . mysqli_error($con);

      mysqli_error 函数中添加$con 作为参数, 你会得到确切的错误,

      http://php.net/mysqli_error

      【讨论】:

        猜你喜欢
        • 2018-08-21
        • 2014-05-30
        • 1970-01-01
        • 2018-04-26
        • 2012-03-21
        • 1970-01-01
        • 2011-12-03
        • 2021-10-27
        • 1970-01-01
        相关资源
        最近更新 更多