kali 2020.4 在安装typecho时,无法连接数据库的问题

问题与环境

linux的环境为 kali 2020.4
php版本为:PHP 7.4.11
安装的typecho版本为:typechov1.0
遇到的问题是:在typecho初始化时,数据库的信息都填写完整,在MariaDB中已经创建了typecho数据库且已经开启MariaDB远程管理功能的时候,仍然出现“无法连接数据库”的问题。截图如下:

注:MariaDB为kali自带的数据库,有关该数据库的详细内容请看https://baike.baidu.com/item/mariaDB/6466119?fr=aladdin)


我本机的ip地址如下:

解决方案:

将数据库初始化信息中的“数据库地址改写为本机的ip地址,而不是回环地址(localhost与127.0.0.1都不行)

点击下一步,你会发现不再报错:“无法连接数据库的”
接下来说是让你在网站根目录的下面手动创建一个 config.inc.php文件,内容如方框中的代码:演示如下


解释原因:

我们首先要了解一下mysql.sock的作用(这里只是简单讲解,具体请自行百度):
其实MySQL有两种来连接方式,一种是通过TCP/IP,就是用-h参数指定要连接的mysqlserverI的IP,另一种是套接字socket,在这里就是mysql.sock文件,其作用是程序与mysqlserver处于同一台机器,发起本地连接时可用。例如你无须定义连接host的具体IP地址,只要为空或localhost就可以,即host为localhost,127.0.0.1时自动使用mysql.sock
至此,显然typecho在连接数据库的时候默认使用的就是这个方法。但是我发现我的 /var/lib/mysql 下并没有这个文件,于是我上网查找资料好久,有的说是mysql.sock默认会在/tmp下,只需要在/var/lib/mysql下建立一个链接即可,又或者是重启一下mysql该文件就会自动生成即可,但是我发现都没有用,仍然没有该文件(可能是我这个mysql是kali2020.4自带的原因吧)。如图:


没办法,由于网上好多博客都一样,都是一样的方法找mysql.sock文件,我也不想找了,正当我准备锤电脑时,忽然想到,mysql不是有两种连接方法吗?那我就不用这个方法呗,用tcp/ip的方式连接mysql数据库,于是我就把localhost 改为了 本机ip(192.168.43.174),让typecho不使用默认的连接方法,而使用tcp/ip连接方法,这样就可以跳过mysql.sock文件了吗,结果证明这样做是可行的。我的天,typecho终于装好了

posted @ 2021-06-16 22:20  浅易深  阅读(45)  评论(0编辑  收藏  举报