PHP怎么设置才能成功连接MySQL数据库
说到用PHP连MySQL,第一步当然是保证MySQL服务是开着的。你可以去“我的电脑”右键 → 管理 → 服务和应用程序 → 服务,找到MySQL服务,看看它是不是启动状态。如果没开,就得启动它。还可以直接打开命令行,输入 mysql -u root -p 加上你的密码,看看能不能连接上。服务没问题了,接下来就是写代码了!
新建一个PHP文件,比如php_mysql.php,里面写连接数据库的代码:
<?php
$link = @mysql_connect('localhost', 'db_user', 'db_pwd') or die("数据库链接失败");
mysql_query("set names 'utf8'");
mysql_select_db('db_name', $link);
?>
千万别忘了,PHP的mysql_connect函数已经被废弃了,现在我们推荐用mysqli_connect或者PDO,这样更安全也更稳定。还有,如果你用的是XAMPP或phpstudy这些开发环境,务必确认MySQL组件已经启动,别说开启了服务,连接不上那才尴尬呢!

为什么phpstudy MySQL启动了却连接不上PHP 连接MySQL常见坑点有哪些
遇到phpstudy MySQL服务明明开着,却连不上数据库,那大概率不是服务的问题,而是权限和配置方面闹的鬼。这里给你总结几个超实用的排查点:
-
用户权限不足。MySQL里有个账户权限管理,可能你的用户没有足够权限访问数据库。解决呢,就是用管理员账号登入MySQL,执行授予权限命令,或者在PhpMyAdmin的“用户”选项卡里给目标用户开通“全部权限”。这样连起来就顺了。
-
防火墙挡路。哎,别小看家里的防火墙,有时候它可阻止了你的MySQL端口3306访问。记得检查你的防火墙设置,允许3306端口入站,这样数据库和PHP才能愉快“聊天”。
-
连接字符串错误。弄清楚你的数据库地址、端口、用户名和密码是不是写对了,一点小错误都可能导致连接失败。配置文件是你小心翼翼的地方,建议写一个公共配置文件来管理这些信息,这样维护起来更方便。
-
PHP版本和MySQL版本兼容问题。现在MySQL 8.0默认用了
caching_sha2_password这个新认证插件,老旧PHP版本根本不认它,连接自然就报错了(比如SQLSTATE[HY000] [2054]啥的)。解决办法嘛,要么升级PHP,要么在MySQL里改回旧的密码验证方式,或者用支持新认证的PHP扩展,才不会崩溃。 -
PHP配置没开扩展。还得确保你的php.ini里打开了mysqli扩展或PDO扩展,很多小伙伴连这点忘了,导致连接像石头卡住一样,怎么都通不了。
搞定以上这些点,加上写代码时用mysqli_connect或者PDO,用try-catch包起来异常处理,让你的PHP和MySQL连接工作稳稳的!

相关问题解答
- PHP连接MySQL时为什么提示权限不足?
嗯,这其实挺常见的坑,别紧张哈!这种情况往往是你用的MySQL账号权限不够,可能没给它在对应数据库的访问权限。解决办法就是用有管理员权限的账号登录数据库,给你的账号加上“全部权限”,或者确保用户名和密码没写错。这样权限一放开,问题一般就迎刃而解啦!
- 防火墙会影响PHP连接MySQL吗?
绝对会!你知道吗,防火墙就像个队门大爷,不认得你的请求就直接拒绝了。MySQL默认用的是3306端口,防火墙如果没放行这个端口,PHP代码即使写得天衣无缝,也没法连到数据库。快检查下防火墙规则,给3306端口开个绿灯,就能通畅无阻啦!
- 旧版本PHP无法连接MySQL 8.0的原因是什么?
嘿,这事儿说来话长,MySQL 8引入了新密码认证插件,叫caching_sha2_password,但你用的老PHP版本根本没装备“识别”它的技能。结果PHP和MySQL之间就没法握手成功,连接失败。最简单的解决办法是升级PHP版本,或者让MySQL切回老密码插件。这样一来,两边就能嗨皮地互相“打招呼”啦!
- 为什么建议用mysqli或PDO代替mysql_connect函数?
这哥们mysql_connect函数已经过时了,官方都说丢了吧!用它不光代码“老古董”,而且缺乏安全性和新功能支持。mysqli和PDO不仅性能更棒,还支持预处理语句,能防止SQL注入等安全问题。换句话说,想你的PHP网站更安全,性能更好,就别犹豫了,赶快用mysqli或者PDO吧,超nice的!
发表评论