用xampp部署bugfree时踩了个坑,因为电脑本身安装了mysql8.0,所以在安装xampp时就没有勾选mysql,在部署bugfree时,一直绕不出这个坑,综合网上大佬的方法,磕磕绊绊的解决了,下文记录:
问题1、xampp 登陆MySQL 访问被拒绝
因为之前mysql设置过密码,所以xampp登录时出现了这种情况
解决方法:修改 ▸ XAMPP ▸ xamppfiles ▸ phpmyadmin/config.inc.php文件
如下图,圈出来的地方修改值如下(有密码的填上密码,我的就是mysql设置了密码,但password和controlpass的地方密码为空,所以报错,记得两个都要填):
问题2:检测mysql未安装
xampp的问题解决了之后,进入bugfree的安装又出问题了,如图.
解决方法:修改bugfree的源代码
修改:
bugfree\install\func.inc.php 中的checkMysql方法:
源代码:
function checkMysql()
{
if(function_exists(“mysql_get_client_info”))
{
$versionInfo = mysql_get_client_info();
preg_match(’/[\d]*([\d.]+)[\d]*/’, $versionInfo, $version);
v
e
r
s
i
o
n
=
i
s
s
e
t
(
version = isset(
version=isset(version[1]) ? $version[1] :
v
e
r
s
i
o
n
I
n
f
o
;
r
e
t
u
r
n
v
e
r
s
i
o
n
c
o
m
p
a
r
e
(
versionInfo; return version_compare(
versionInfo;returnversioncompare(version, ‘5.0’, ‘>=’);
}
return t(‘bugfree’, ‘Not Install’);
}
修改后的代码:
function checkMysql()
{
if(function_exists(“mysqli_get_server_info”))
{
$test = new mysqli("127.0.0.1", "root", "", "mysql");
if(!$test) {
echo"database error";
}else{
echo"php env successful \n";
$versionInfo = mysqli_get_server_info($test);
printf("Server version: %s\n", mysqli_get_server_info($test));
preg_match('/[^\d]*([\d\.]+)[^\d]*/', $versionInfo, $version);
print_r($version);
$version = isset($version[1]) ? $version[1] : $versionInfo;
$test->close();
return version_compare($version, '5.0', '>=');
}
}
return t('bugfree', 'Not Install');
}
如下图:
还需要将文件第30行的 mysql_get_client_info()改为mysqli_get_server_info()
如下图:
原文链接:https://blog.csdn.net/CATHY_AA/java/article/details/78031416
修改完成后,刷新时,检测的地方还是叉叉,就很难受了,其实还差最后一步,mysql密码!!
因为刚才的代码,是直接在网上拿的大佬的,但是我本身的数据库是设置了密码的,所以需要加上密码,如下图
然后再刷新,就能检测到mysql了!