phpcms从15年断断续续的用也好多年了,最近帮朋友做一个网站,在迁入阿里云虚拟主机过程中,跟数据库连接时候报错‘无法连接数据库服务器,请检查配置’,说一下排查问题的过程。
1.一开始以为是用户名密码之类的错误,或者数据库主机和数据库名称填写有误,多次尝试报同样的错误,于是用navicat远程登录发现可以连,排除这方面的问题
2.在navicat里看到数据库编码是gbk的,而我的phpcms版本是utf8的,于是把数据库编码改成utf8,具体修改方法可以去阿里云搜索,在此不详细描述,发现还是报错
3.度娘之后,发现也有朋友出现同样问题,原因是数据库密码里面含有特殊字符了,phpcms提交数据库密码的时候用的是get的提交方式,特殊字符会被随意解析(大概是这意思),解决方法有两种,第一种也是最简便的把你的数据库密码改成简单类型的,还有一种修改install/step/step5.tpl.php 127行左右
var url = '?step=dbtest&dbhost='+$('#dbhost').val()+'&dbuser='+$('#dbuser').val()+'&dbpw='+$('#dbpw').val()+'&dbname='+$('#dbname').val()+'&tablepre='+$('#tablepre').val()+'&sid='+Math.random()*5;
修改成
var url = '?step=dbtest&dbhost='+$('#dbhost').val()+'&dbuser='+$('#dbuser').val()+'&dbpw='+'&dbpw='+escape($('#dbpw').val())+'&dbname='+$('#dbname').val()+'&tablepre='+$('#tablepre').val()+'&sid='+Math.random()*5;
ok,解决问题