在使用 CentOS 7 操作系统时,我们可能会遇到 MySQL 不能连接 PHP 的问题。这是因为 CentOS 7 自带的 MariaDB 和 MySQL 冲突,导致连接不上数据库。本文将为您介绍如何解决 CentOS 7 中 MySQL 连不上 PHP 问题。
一、禁用 MariaDB
为了避免与 MariaDB 冲突,我们需要先将它禁用掉。可以使用以下命令:
systemctl stop mariadb.service # 停止MariaDB服务
systemctl disable mariadb.service # 禁用MariaDB服务
禁用之后,我们需要确认已经停止了 MariaDB 服务。可以使用以下命令:
systemctl status mariadb.service # 查看MariaDB服务状态
如果状态显示为 inactive,说明已经停止 Mariadb 服务。
二、安装 MySQL
安装 MySQL 的依赖:
yum -y install wget
yum -y install net-tools
下载 MySQL 安装包:
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
安装 MySQL:
rpm -ivh mysql57-community-release-el7-11.noarch.rpm
yum install mysql-community-server
安装完成后,启动 MySQL:
systemctl start mysqld
systemctl enable mysqld
三、修改 MySQL 配置
连接 MySQL:
mysql -u root -p
输入密码
修改 MySQL 配置文件:
vim /etc/my.cnf
在 [mysqld] 配置下添加以下内容:
skip-grant-tables
初始化密码:
use mysql;
update user set authentication_string=password('password') where user='root';
flush privileges;
quit;
修改配置文件中 skip-grant-tables 为如下内容:
skip-grant-tables
重新启动 MySQL 服务:
systemctl restart mysqld
四、修改 PHP 配置文件
编辑 PHP 配置文件:
vim /etc/php.ini
搜索 mysql.default_socket 或者 mysqli.default_socket,将其改为 MySQL 的 socket 文件地址:
mysql.default_socket = /var/lib/mysql/mysql.sock
mysqli.default_socket = /var/lib/mysql/mysql.sock
pdo_mysql.default_socket = /var/lib/mysql/mysql.sock
五、测试连接
在终端里输入以下代码(用户名和密码需要自行修改):
$con = mysqli_connect("localhost","username","password");
if (!$con)
{
die('Could not connect: ' . mysqli_error());
}
echo 'Connected successfully';
mysqli_close($con);
?>
如果输出 Connected successfully,则说明现在可以通过 PHP 连接 MySQL 数据库。如若测试未通过,请检查以上步骤,重新查找问题所在。
总结:
以上是在 CentOS 7 中 MySQL 连接不上 PHP 的解决方法,希望能给需要的同学提供帮助。如果您还有其它问题,欢迎留言探讨。
以上是如何解决CentOS7中MySQL连不上PHP问题的详细内容。更多信息请关注PHP中文网其他相关文章!