发布网友 发布时间:2022-04-24 09:55
共2个回答
懂视网 时间:2022-04-29 18:33
php无法连接mysql的解决办法:
问题一
今天给本本装上mysql和php,一切安装都很正常(php@IIS7.5-fastCGI)。但用phpmyadmin连接测试时却出现“#2002无法连接”的错误,用其它程序也是同样问题。
检查了下,php的mysql扩展正确安装,mysql服务正常启动--那就奇了怪了。又用navicat连接,居然连上了。。看来是php和mysql间的通讯出了问题。
百度了一下,问题被揪出来了:
mysql_connect()函数数据库服务器(server)参数当前设置为localhost,但当其更改为127.0.0.1后又可以正常访问。
系统hosts文件未提供127.0.0.1到localhost的解析。
解决方法(以win7系统为例):找到C:\Windows\System32\drivers\etc\hosts文件,默认为只读,你需要复制一份到其他路径如桌面,打开文件(打开方式:记事本),在文件末尾添加:127.0.0.1 localhost
如果已存在去掉其前面的“#”。
问题二
php脚本可以正常运行,如phpinfo()。
只要一出现“mysql_connect”函数,就没反应,也不报错。
如 $conn = mysql_connect("127.0.0.1","root","xxxx") or die("MYSQL数据库连接失败:".mysql_error());
apache日志目录error.log中出现
PHP Warning: PHP Startup: Unable to load dynamic library 'c:\\php\\ext\\php_mysql.dll'
解决办法:
将“libmysql.dll”复制到apache的bin目录下。然后重启,观察error.log,如果错误消失,那恭喜了。
另:网上资料也有说将““libmysql.dll””“php_mysql.dll”复制到windows/system32的。
问题三
代码如下
$link_id=@mysql_connect( "localhost ", "sampadm ", "secret "); //以下代码省略 ?>
运行时出现如下提示:
fatal error: call to undefined function mysql_connect() in var/www/html/mytest.php
解决方法:
1、php.ini中
extension_dir设置为 "d:\apache2\php\ext "绝对路径,否则有些环境中会出错。
打开下面两行功能扩展
extension=php_mysql.dll
extension=php_mysqli.dll
2、拷贝libmysql.dll(php目录下)和php_mysql.dll(php/ext目录下)至c:\windows\system32目录下(libmysql.dll必须为php目录下,比如我的为D:\apache2\php目录下的libmysql.dll,php_mysql.dll则在D:\apache2\php\ext)
3、测试,
1> 先打开命令行
A)依次点击“开始”菜单-> “mysql”-> “mysql5 server”-> “MySQL Command Line Client”
//如此步成功则mysql安全成功,失效则mysql安装失败,请卸载后重装
B)输入密码
//此步正常则说明 root账户的密码正确。失败则账号密码有错
2> 新建文件至主目录,并保存为testmysql.php,接着在浏览器中输入http://localhost/testmysql.php
(或者http://localhost:81/testmysql.php)
如果不行查看一下apache是否加载了php与 mysql方法
apache中支置对php5的支持httpd.conf文件中加入下面三行
PHPIniDir "D:/ccopen/php5/" LoadModule php5_module "D:/ccopen/php5/php5apache2_2.dll" AddType application/x-httpd-php .php
php.ini中去掉下面两行分号
extension=php_mysql.dll
extension=php_mysqli.dll
将php_mysql.dll和libmysql.dll拷到system32
重起apache服务器
相关视频推荐:PHP编程从入门到精通
热心网友 时间:2022-04-29 15:41
故障状况:php网站连接mysql失败,但在命令行下通过mysql命令可登录并正常操作。
解决方案:
1、命令行下登录mysql,执行以下命令:
复制代码
代码如下:show
variables
like
'socket';
执行后会得到类似于如下回显:
复制代码
代码如下:
"Variable_name"
"Value"
"socket"
"/home/mysql/data/mysql.sock"
2、编辑php.ini,找到mysql.default_socket配置项,默认一般是空值(使用编辑Mysql时设置的sock路径),将此项添加值为上面回显中的"/home/mysql/data/mysql.sock":
复制代码
代码如下:
;
Default
socket
name
for
local
MySQL
connects.
If
empty,
uses
the
built-in
;
MySQL
defaults.
mysql.default_socket
=
/home/mysql/data/mysql.sock
3、重启php。