网站打不开?八成是数据库配置没填对
找到数据库配置文件
PHP网站用于数据库连接的信息,一般是放置于一个单独的文件之中。你得先去寻找到这个文件,常见的文件名涵盖config.php、database.php、conn.php以及settings.php。能够前往网站的根目录那里找寻一番,有时候它也会被放置在诸如includes或者config这类的子文件夹里面。
运用记事本或者代码编辑器去打开这个文件,你将会看到一些以$符号作为开头的变量,像是$db_host、$db_user、$db_password等等之类的。这些可都是属于要修改的所述参数范畴,千万切切不要弄错了地方,不然的话网站依旧是连接不上数据库的。
修改连接参数要仔细
关于主机地址这一项,要是数据库以及网站代码处于同一台服务器之上,一般填写localhost或者127.0.0.1便可以。要是数据库在另外一台服务器那里,那就得填写相应的IP地址,就像192.168.1.100这样。
必须要用户名与密码跟你所创建的数据库用户保持一致,数据库名也得填准确无误。有一个细节是好多人会忽视的,那便是端口号。MySQL它默认的情况是3306,要是你在安装的时候更改了端口,就得记得在配置当中加上port参数,不然连接将会失败。
用mysqli扩展连接数据库
有些老旧的项目运用的是mysqli扩展去连接数据库,代码当中会出现mysqli_connect这般的函数,你能够在PHP文件里寻觅到类似于$conn = mysqli_connect($host, $user, $pass, $db)这样的语句。
$conn = mysqli_connect("localhost", "root", "password", "mydb");
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
echo "数据库连接成功";
?>
这段代码所具备的作用便是去建立连接,要是返回false这就意味着连接遭遇失败。能够于连接代码的后面添加上if语句用作判断,举例来说if(!$conn){die('连接失败: '. mysqli_connect_error());},通过这样的方式便能够看到确切的错误信息,从而便于去排查问题了。
PDO方式更安全灵活
现如今,诸多新开发出来的PHP项目,皆是运用PDO扩展去连接数据库的,它还支持各种各样数目的数据库,不光如此,运用预处理语句能够起到防止SQL注入的作用,连接代码一般而言是new PDO("mysql:host=$host;dbname=$dbname", $user, $pass)。
运用PDO之际,最优做法乃是将错误模式设定成异常模式,如此一来,一旦连接遭遇失败状况,便会抛出异常,你能够借助try - catch进行捕获,进而输出错误信息。举例而言,像catch(PDOException $e){echo '数据库连接失败: '. $e->getMessage();}这般,就能够迅速定位问题之所在。
try {
$dsn = "mysql:host=localhost;port=3306;dbname=mydb;charset=utf8";
$pdo = new PDO($dsn, "root", "password");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "PDO 连接成功";
} catch (PDOException $e) {
echo "连接错误: " . $e->getMessage();
}
?>
导入数据库表结构和数据
仅仅是连接上数据库,这还远远不够,只有库里存在表,才能够正常对数据予以显示。要去寻找到源码所附带的SQL文件,它一般被称作install.sql或者data.sql。运用phpMyAdmin登录数据库,首先要创建一个与之同名的数据库,字符集选择为utf8mb4。
轻触导入按钮,从中挑选SQL文件,倘若文件规模过大,便有可能出现超时状况,此时能够借助命令行予以导入,即mysql -u用户名 -p 数据库名 < 文件路径.sql。在导入操作完毕之后,核查一下表究竟是否均已成功创建了,存在一些CMS系统,其表的数量会达到几十张,哪怕遗漏其中一张表,都极有可能致使报错。
检查用户权限和服务器环境
从事数据库相关操作的用户,必须具备相应权限,才能够对与之对应的库进行操作。当展开登录MySQL这一行为后 ,执行SHOW GRANTS FOR '用户名'@'主机名'这个指令 ,以此来查看该用户所拥有的权限。要是经过查看后发现权限并不充足 ,那么就需运用GRANT ALL PRIVILEGES ON 数据库名.* TO '用户名'@'主机名'这种方式来进行授权 ,同时千万不要遗漏执行FLUSH PRIVILEGES这个步骤 ,以便能够实现权限的刷新。
需进一步敲定MySQL服务正以正常状态运行着,Web服务器能够成功连上数据库才行。可于服务器命令行那儿开展测试,具体操作为:mysql -u用户名 -p -h主机地址,若登录能够成功,那就表明网络以及权限均不存在问题。要是连接不上,那就得去检查一下防火墙是不是将3306端口放行通过了。
什么样的数据库连接错误是你所遭遇过的、最能使人抓狂抓狂的呢,欢迎于评论区阐述你的排坑那些经历,点一个赞许承认的赞好使更多网站管理者看到这一篇文章!


还没有评论,来说两句吧...