热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Php无法访问ubuntu服务器上的mysql服务器-Phpcannotaccessmysqlserveronubuntuserver

Ihavesetuptheubuntuserverandmyphpcodeisestablishingadatabaseconnectionwithmysqlrunn

I have setup the ubuntu server and my php code is establishing a database connection with mysql running on the same server. My credentials for the database are correct, crossed checked it thrice but i am unable to figure out what i a missing. So what i have done so far.

我已经设置了ubuntu服务器,我的php代码正在与在同一服务器上运行的mysql建立数据库连接。我的数据库凭据是正确的,交叉检查三次,但我无法弄清楚我错过了什么。那么到目前为止我做了什么。

Make sure the mysql server is running.

确保mysql服务器正在运行。

  1. mysql -u root -h 127.0.0.1 -p // I can login into mysql server on ubuntu server.
  2. mysql -u root -h 127.0.0.1 -p //我可以在ubuntu服务器上登录mysql服务器。

  3. Run this command 'netstat -tulpen' and get this entry tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 107 20280 -
  4. 运行此命令'netstat -tulpen'并获取此条目tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 107 20280 -

Error on apache when php is trying to access mysql:

php尝试访问mysql时apache出错:

PHP Warning: mysqli::__construct(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES)

PHP警告:mysqli :: __ construct():( HY000 / 1045):拒绝访问用户'root'@'localhost'(使用密码:YES)

Lastly my database credentials look like this:

最后,我的数据库凭据如下所示:

// here I have tried 127.0.0.1:3306, localhost as well but it does not seem to work
$dbhost2 = 'localhost:3306'; 
$dbuser2 = 'root';
$dbpass2 = 'somepassword';
$dbname2 = 'my_db_name';

Updated: This is how i am connecting my php code is using the above variables to connect to the database

更新:这是我如何连接我的PHP代码是使用上述变量连接到数据库

$DBCONN2 = @mysqli_connect($dbhost2, $dbuser2, $dbpass2, $dbname2) or die('Failed');

Updated 2: There is also another connection being used like this

更新2:还有另一个连接正在使用这样

$DBCOnNi= new mysqli($dbhost2, $dbuser2, $dbpass2, $dbname2) or die('Failed');

3 个解决方案

#1


-3  

mysql -u root -h 127.0.0.1 -p

mysql -u root -h 127.0.0.1 -p

...

$dbhost2 = 'localhost:3306';

$ dbhost2 ='localhost:3306';

In MySQL, 'localhost' is not a network address. 'localhost' is interpreted as meaning 'use the defined (AF_UNIX) filesystem socket, not a network socket'. In addition, the authentication for 'localhost' connections is handled separately from network connections.

在MySQL中,'localhost'不是网络地址。 'localhost'被解释为'使用已定义的(AF_UNIX)文件系统套接字,而不是网络套接字'。此外,“localhost”连接的身份验证与网络连接分开处理。

The path to the filesystem socket is defined in 'my.cnf'. The location of my.cnf is defined when the relevant servers and clients are compiled, but is usually '/etc'

文件系统套接字的路径在'my.cnf'中定义。 my.cnf的位置是在编译相关服务器和客户端时定义的,但通常是'/ etc'

While I've not tried explicitly with mysqlnd, I would expect its behaviour to be consistent with clients using libmysql.

虽然我没有明确尝试使用mysqlnd,但我希望它的行为与使用libmysql的客户端保持一致。

Change your PHP code to use '127.0.0.1' (specifying the default port number 3306 should be redundant)

将您的PHP代码更改为使用'127.0.0.1'(指定默认端口号3306应该是多余的)

#2


-3  

Try without password or try to add password to mysql root user. ANd see here Warning: mysqli_connect(): (HY000/1045): Access denied for user 'username'@'localhost' (using password: YES)

尝试不使用密码或尝试向mysql root用户添加密码。请看这里警告:mysqli_connect():( HY000 / 1045):用户'用户名'@'localhost'拒绝访问(使用密码:YES)

#3


-3  

Try with PDO https://github.com/fxstar/PhpJsCss/blob/master/PDOapi/_PDO_Class.php

尝试使用PDO https://github.com/fxstar/PhpJsCss/blob/master/PDOapi/_PDO_Class.php

    // Mysql connect    
function Conn(){
    try{
        // data from config file globals variables
        global $mysqlhost, $mysqluser, $mysqlpass, $mysqlport, $mysqldb;
        // pdo
        $cOnn= new PDO('mysql:host='.$mysqlhost.';port='.$mysqlport.';dbname='.$mysqldb.';charset=utf8', $mysqluser, $mysqlpass);
        // don't cache query
        $conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
        // show warning text
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
        // throw error exception
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        // don't colose connecion on script end
        $conn->setAttribute(PDO::ATTR_PERSISTENT, false);
        // set utf for connection utf8_general_ci or utf8_unicode_ci 
        $conn->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES 'utf8mb4' COLLATE 'utf8mb4_unicode_ci'");
        // Buffered query
        // $conn->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true);

        // PDO SSL
        // $cOnn= new PDO('mysql:host='.$mysqlhost.';port='.$mysqlport.';dbname='.$mysqldb.';charset=utf8', $mysqluser, $mysqlpass,array( PDO::MYSQL_ATTR_SSL_KEY    =>'/path/to/client-key.pem', PDO::MYSQL_ATTR_SSL_CERT=>'/path/to/client-cert.pem', PDO::MYSQL_ATTR_SSL_CA    =>'/path/to/ca-cert.pem'));
        // Or
        // $conn->setAttribute(PDO::MYSQL_ATTR_SSL_KEY => '/path/to/client-key.pem');
        // $conn->setAttribute(PDO::MYSQL_ATTR_SSL_CERT => '/path/to/client-cert.pem');
        // $conn->setAttribute(PDO::MYSQL_ATTR_SSL_CA => '/path/to/ca-cert.pem');           
        return $conn;
    }catch(Exception $e){
        echo "Mysql connection error!!!";
        return 0;
    }
    // $rows = $res->fetchAll(PDO::FETCH_ASSOC);
    // $cnt = $res->rowCount();
    // $id = $this->db->lastInsertId();
    // buffered query
    // $stmt = $db->prepare('select * from foo', array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true)
}

推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
author-avatar
天宣建欣振萍
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有