我尝试使用以下代码将PHP代码安全地连接到MySQL:
<html>
<?php
$con = mysql_connect("localhost:3306","root","password");
if(!$con)
{
die('Could not connect: ' . mysql_error());
}
else
{
echo "Connection established!";
}
mysql_close($con);
?>
</html>
但我一直收到以下错误消息:
警告:mysql_connect()[函数. mysql-连接]:无法连接到MySQL服务器,该服务器位于C:\xampp\htdocs\database_connect. php中的“localhost”(10061)上。无法连接到'localhost'上的MySQL服务器(10061)
以下是我采取的故障排除步骤:
- 已检查mysqld是否正在Windows任务管理器进程中运行-它正在运行
- 通过在Windows命令提示符下键入以下命令来检查主机上是否正在运行MySQL:“telnet 192.0.0.1 3306”,并收到消息“无法在端口3306上打开与主机的连接:连接失败”
- 已检查Windows防火墙是否阻止MySQL - MySQL是个例外。
我如何让这段代码安全地工作?我如何检查关于我的MySQL的基本有用信息,如用户名?
7条答案
按热度按时间qkf9rpyu1#
您可以使用tcpview检查MySQL服务器是否绑定到端口3306。更简单地说,从主机说明符中删除该端口。然后,驱动程序应尝试使用命名管道,而不是TCP套接字。
另外,我强烈建议您改用PDO MySQL驱动程序。您正在使用的驱动程序已经非常过时了。PDO的一大优势是支持prepared statements,它提供了安全性和效率方面的好处。
编辑:
这并没有回答你的主要问题,但是在评论中发布这些信息会很混乱。
除了W3Schools,您还可以查看以下网站中建议的资源:
g0czyy6m2#
**注:**这不是OP问题的解决方案,但出于历史原因,我将保留我的答案,也因为它可能是其他一些人的问题。
您是否使用Windows Vista/7并运行PHP 5.3.1?
PHP中MySQL库的一个最新更改(现在使用
mysqlnd
)导致连接到localhost
时出现问题。一个bug已被填补,但在此之前,请确保您的hosts
文件包含localhost
的条目。您的
hosts
档案localhost
项目必须如下所示:正如您所看到的,
IPv6
条目被注解掉了,而IPv4
条目没有被注解掉。hosts
文件位于:来源
ajsxfq5m3#
好了,各位,这是我第一次尝试使用Outis建议的PDO连接MySQL和PHP。它成功了。
这是我的第二次尝试-这次我尝试执行查询
运行此代码后,我得到以下结果:
数组([exo_flowers_ID] =〉1 [0] =〉1 [name] =〉夹竹桃串瓣兰[1] =〉夹竹桃串瓣兰[country] =〉智利[2] =〉智利[env_worker_id] =〉1 [3] =〉1)Array([exo_flowers_ID] =〉2 [0] =〉2 [名称] =〉雪登菊[1] =〉雪登菊[国家/地区] =〉北威尔士[2] =〉北威尔士[环境工作者标识] =〉1 [3] =〉1)
我只想显示一行或一列的内容,但却得到了所有内容加上所有这些括号。如何只显示表格行或列的内容?
还有最后,我怎么这么一个质问似的:SELECT * FROM表名称WHERE '列名称1' = '某个用户名' AND '列名称2' = '其他用户名';?
wlzqhblo4#
您无法恢复密码,但可以创建一个新密码。关闭MySQL服务并执行:
9vw9lbht5#
也许您在MySQL安装时没有设置远程连接。您尝试通过端口进行连接,这与远程连接是一样的。我已经有一段时间没有使用MySQL了,但这是一个致命的漏洞:
通过在Windows命令提示符下键入以下命令来检查主机上是否正在运行MySQL:“telnet 192.0.0.1 3306”,并收到消息“无法在端口3306上打开与主机的连接:连接失败”
它不会工作。你确定它是为端口3306而不是另一个端口配置的吗?再检查一遍。
代码本身看起来很好,不是问题所在。端口显然是问题所在。
iaqfqrcu6#
如果可以访问MySQL shell,则可以检查服务器的网络配置,如下所示:
如果
skip_networking
设置为“ON”,则您的MySQL服务器已配置为不允许通过网络访问,并且只能通过本地套接字运行。否则,它将侦听port
配置变量中指定的端口。at0kjp5o7#
我解决了同样的问题“无法连接到MySQL服务器上'localhost'”与以下步骤(Windows 7,XAMPP v.3.2.1安装,PHP连接到MySQL不工作):
1.打开XAMPP控制面板(我的版本是v.3.2.1)。按面板右侧的“Shell”按钮。
1.窗口打开时带有一个标题:“管理员道:XAMP for Windows - mysql -u根目录”并添加以下文本:
1.输入:
#mysql
获得的答案:
Welcome to the MySQL monitor…
然后输入:
mysql>create database mdb;
答案:
ERROR 1044 (42000): Access denied for user ‘’@’localhost’ to database ‘drawdb’
输入:
#mysql –u root
答案:
Welcome to the MySQL monitor…
输入:
mysql>create database mdb;
答案:
Query OK, 1 row affected (0.00 sec)
输入:
mysql>grant all on mdb.* to user@localhost identified by ‘password’;
答案:
Query OK, 0 rows affected (0.06 sec)
也就是说,我允许指定的用户访问手动创建的数据库,然后用用户名“user”和密码“password”成功创建了到MySQL的php连接: