欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

求解PHP无法连接mysql问题 在线等

程序员文章站 2022-05-14 20:27:20
...
本机是win7 系统
php版本:PHP Version 5.2.6
apache 2.2
mysql:5.1.40

本地测试,PHP可以正常 但是唯一的就是不能连接上mysql 也不能使用phpmyadmin

本地测试在IE下直接就是错误页, 在360 下会提示一个:您指定的网页无法访问! 错误类型:连接失败

请高手帮解决,重谢...


回复讨论(解决方案)

你连接MYSQL的语句发出来看一下吧。

先打开服务,看看你的mysql的服务是否已经启动了

下载个Navicat建立?接测试一下
主机名或ip你填写:localhost
端口:3306
用户名和密码根据你的设置填写,默认用户名是:root

去服务里查看mysql已启动

我用的是EMS SQL MANAGER 2005 lite for mysql 是可以连上数据库的,
用的是localhost
端口3306
用户名root
密码admin

这个是可以连接上数据库的。

$link=mysql_connect('localhost','root','admin');
if(!$link) echo "fail".mysql_error(); //看看输出什么错误信息
else echo "success";
?>

换上


后,运行此程序段出现Internet Explorer 无法显示该网页


你用我的代码连接一下试试
$Conn=mysql_connect("localhost","root","admin",1) Or Die('Database server connection failed, check the Config configuration is correct!');



$pdo = New PDO('mysql:host=localhost;dbname=数据表名称','root','admin');

我粘上无法显示该网页的代码

              Internet Explorer 无法显示该网页
求解PHP无法连接mysql问题 在线等

Internet Explorer 无法显示该网页

您可以尝试以下操作:

求解PHP无法连接mysql问题 在线等
ry

我粘上无法显示该网页的代码

HTML code






这个对于解决问题没有任何帮助,不过就是一个404错误页面

404错误,访问的文件不存在,或者你输入的URL不对。

环境没有搭好吧

404错误,访问的文件不存在,或者你输入的URL不对。

页面一点开就运行中.... 然后就出现该问题。。 该页面下跟mysql无关的都可以运行。 我访问phpmyadmin 这个也是,可以进入到登陆页面,输入用户名与密码后,就会运行...然后出现该页面,无法显示。。。





环境没有搭好吧

php能运行。 就是不能访问mysql....... 要怎么搭。。 根据网上的php.ini这个文件已经有过n次更改了,一直访问不了

引用 10 楼 bsk_bg 的回复:

我粘上无法显示该网页的代码

HTML code








我兼着细心的态度,没放过一点点痕迹...

你只需开启php的错误显示功能,就什么都知道了

实在不行你就下载集成环境吧
http://www.php100.com/html/download/server/2010/1226/wamp21a.html
简单实用,不用配置ini就行.我也在用这个

你只需开启php的错误显示功能,就什么都知道了

php.ini已配置着显示错误呢。 就是不显示,不知道原因在哪块






实在不行你就下载集成环境吧
http://www.php100.com/html/download/server/2010/1226/wamp21a.html
简单实用,不用配置ini就行.我也在用这个

谢谢了,我想先弄明白这一块,毕竟要使用PHP了,弄不明白心里不太舒服

$link = mysql_connect('localhost','root','admin') or die(mysql_error());

如果这样写出现找不到网页的情况,就表示你的 php 没有开启错误显示功能

$link = mysql_connect('localhost','root','admin') or die(mysql_error());

如果这样写出现找不到网页的情况,就表示你的 php 没有开启错误显示功能

写成你这样,网页显示空白,查看源码也无任何信息。。



开启错误功能我更改的是如下:

;error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR;;   - Show all errors except for notices and coding standards warnings;error_reporting  =  E_ALL & ~E_NOTICE; Print out errors (as a part of the output).  For production web sites,; you're strongly encouraged to turn this feature off, and use error logging; instead (see below).  Keeping display_errors enabled on a production web site; may reveal security information to end users, such as file paths on your Web; server, your database schema or other information.;; possible values for display_errors:;; Off        - Do not display any errors; stderr     - Display errors to STDERR (affects only CGI/CLI binaries!);;display_errors = "stderr";; stdout (On) - Display errors to STDOUT;display_errors =On

上面的本想加红。结果成代码。。

;error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
;
; - Show all errors except for notices and coding standards warnings
;
error_reporting = E_ALL & ~E_NOTICE

; Print out errors (as a part of the output). For production web sites,
; you're strongly encouraged to turn this feature off, and use error logging
; instead (see below). Keeping display_errors enabled on a production web site
; may reveal security information to end users, such as file paths on your Web
; server, your database schema or other information.
;
; possible values for display_errors:
;
; Off - Do not display any errors
; stderr - Display errors to STDERR (affects only CGI/CLI binaries!)
;
;display_errors = "stderr"
;
; stdout (On) - Display errors to STDOUT
;
display_errors =On

display_startup_errors = On试试。

display_startup_errors = On试试。

这一项也开着呢。

你需要在 phpinfo() 的结果页面中查看 display_errors 项

$dbbase="localhost";
$dbname="root";
$dbpass="1234";
$id=mysql_connect($dbbase,$dbname,$dbpass);
$ok=mysql_select_db("lvyou",$id);
mysql_query('SET names "utf8"');
?>

这个是我常用的 修改测试一下 一般不会有问题。

你需要在 phpinfo() 的结果页面中查看 display_errors 项
对,用此方法输出一下看看php的状况

把地址栏的http://localhost/访问MYSQL的PHP页地址改换为:http://127.0.0.1/访问MYSQL的PHP页地址
或者颠倒过来试一下!

根据以上几楼改动测试。问题依旧未解决

你需要在 phpinfo() 的结果页面中查看 display_errors 项
我粘上我的phpinfo()页面的一些结果上来

ConfigurationPHP CoreDirective Local Value Master Value allow_call_time_pass_reference On On allow_url_fopen On On allow_url_include Off Off always_populate_raw_post_data Off Off arg_separator.input & & arg_separator.output & & asp_tags Off Off auto_append_file no value no value auto_globals_jit On On auto_prepend_file no value no value browscap no value no value default_charset no value no value default_mimetype text/html text/html define_syslog_variables Off Off disable_classes no value no value disable_functions no value no value display_errors On On display_startup_errors On On doc_root no value no value docref_ext no value no value docref_root no value no value enable_dl On On error_append_string no value no value error_log no value no value error_prepend_string no value no value error_reporting 6135 6135 expose_php On On extension_dir c:\php\ext c:\php\ext file_uploads On On highlight.bg #FFFFFF #FFFFFF highlight.comment #FF8000 #FF8000 highlight.default #0000BB #0000BB highlight.html #000000 #000000 highlight.keyword #007700 #007700 highlight.string #DD0000 #DD0000 html_errors Off Off ignore_repeated_errors Off Off ignore_repeated_source Off Off ignore_user_abort Off Off implicit_flush Off Off include_path .;C:\php5\pear .;C:\php5\pear log_errors Off Off log_errors_max_len 1024 1024 magic_quotes_gpc On On magic_quotes_runtime Off Off magic_quotes_sybase Off Off mail.force_extra_parameters no value no value max_execution_time 30 30 max_input_nesting_level 64 64 max_input_time 60 60 memory_limit 2M 2M open_basedir no value no value output_buffering no value no value output_handler no value no value post_max_size 8M 8M precision 12 12 realpath_cache_size 16K 16K realpath_cache_ttl 120 120 register_argc_argv On On register_globals Off Off register_long_arrays On On report_memleaks On On report_zend_debug On On safe_mode Off Off safe_mode_exec_dir no value no value safe_mode_gid Off Off safe_mode_include_dir no value no value sendmail_from no value no value sendmail_path no value no value serialize_precision 100 100 short_open_tag On On SMTP localhost localhost smtp_port 25 25 sql.safe_mode Off Off track_errors Off Off unserialize_callback_func no value no value upload_max_filesize 2 2 upload_tmp_dir no value no value user_dir no value no value variables_order EGPCS EGPCS xmlrpc_error_number 0 0 xmlrpc_errors Off Off y2k_compliance On On zend.ze1_compatibility_mode Off Off 

继续等待结果..............

是不是权限问题?

记录中

重新安装php 和apache 到其他非c盘看看.包括mysql.
没必要在这种事情上纠结.

这种情况很简单,只需要把 php.ini中“;extension=php_mysql.dll”前的“;”去掉,加载mysql模块。重要的是配置Apache把其中的httpd.conf 中加入“ phpinidir “E:/PHP””就是你的安装路径

未解决....................

在IE的选项里把友好的HTTP错误信息那个勾去掉。

这种情况很简单,只需要把 php.ini中“;extension=php_mysql.dll”前的“;”去掉,加载mysql模块。重要的是配置Apache把其中的httpd.conf 中加入“ phpinidir “E:/PHP””就是你的安装路径
正解!

呵呵,很简单的问题么。php链接不上mysql 大都是php.ini 中dll 文件没有开启.phpinfo 看下就知道有没有链接上。LZ 啊 多学习啊

呵呵,很简单的问题么。php链接不上mysql 大都是php.ini 中dll 文件没有开启.phpinfo 看下就知道有没有链接上。LZ 啊 多学习啊

这个在前几楼已经做答,能打开的都打开了, phpinfo我已经贴出来了 连接数据库的dll全开了

引用 34 楼 libystu 的回复:

这种情况很简单,只需要把 php.ini中“;extension=php_mysql.dll”前的“;”去掉,加载mysql模块。重要的是配置Apache把其中的httpd.conf 中加入“ phpinidir “E:/PHP””就是你的安装路径

正解!

这个问题在前几楼也已经提过了。不是这么简单吧, 这些象你说的,我全都是做过的。

首先检查你的php的配置文件是不是都配置好了,有没有漏掉的
然后检查mysql的服务开启了没
按照mysql的过程中,有没有设置错误
阿帕奇有没有设置成功

首先检查你的php的配置文件是不是都配置好了,有没有漏掉的
然后检查mysql的服务开启了没
按照mysql的过程中,有没有设置错误
阿帕奇有没有设置成功

经检查需要的都配置好了

PHP 程序可以通过阿帕奇 运行 这个说明 PHP运行环境没有问题

mysql服务已启动, 并且可以连接使用, 唯一不行的就是 PHP 不能连接 mysql

apache/logs/error.log
看一下,能不能发现问题

请测试能连接数据库没有?

如果不能,就说明数据库安装不成功嘛。

未解决....................
是没在开发环境下吧 。。。。

C:\php\ext 加入环境变量 php

先测试下数据库是否正常运行吧,两个办法:
1.命令行下运行telnet localhost 3306 看看能连上不?
2.命令行下进入到mysql安装目录下的bin目录,运行 mysql -u root -p 然后输入你的root用户密码,如果能连上说明mysql运行正常。

除了以上检查,你还可以看看apache的日志

libmysql.dll 是PHP里面的而不是MYSQL里面的拷贝到System32

我也遇到这问题了~~~真晕了~~~

楼主,你的问题解决了没有,我也遇到这个问题了。求解!!!!!!!!!!!

1.extension_dir = ".\ext"
2.php的目录要加到环境变量 path ,目的是引用那个mysqllib.dll的东西。
3.extension=php_mysql.dll 注析去掉
4.display_errors = On 方便调式,最好打开,不然就只有404错误,看到undefine function就是前面的问题。

要是apache能访问一般php页,数据库也应该能连。

记得改完以上设置后,一定要重启apache,就行了。用phpinfo能看到mysql模块存在(我的操作系统不需要重启)。