我们经常在本地主机安装和调试网站,因为不太考虑安全性和易用性,所以MySQL数据库密码经常没有设置或设置简单。待我们设计和测试好网站以后上传至远端服务器空间上,并导入数据库表和释放网站压缩包。这时打开网站和登录后台会发现,因为本地主机的MySQL密码和服务器MySQL密码不一致,导致网站前台和后代无法打开。
显示“Database Error: Unable to connect to the database:Could not
connect to MySQL”或“Error establishing a database
connection”,意为数据错误,无法连接到MySQL数据库,建立数据库连接错误。这就是原本地主机安装的网站MySQL数据库与服务器中MySQL数据库密码不一致所致。同样我们更换自己网站从一个主机空间服务商到另一个主机空间服务商处也会出现这种情况。
出现这种情况第一种解决方案就是修改服务器中的MySQL数据库密码,与网站原MySQL数据库一直,不过此法虽然有效,但一般服务器不会是一个网站,所以这样会导致其他网站全部瘫痪。故此法不可行。
第二方案,或者在本地主机中修改MySQL数据库密码,然后重新上传。此法只针对部分基于PHP的网站设计有效,可以重新安装设置MySQL的信息,有些已经成功安装的网站无法走回头路。
google和百度了一下解决方案,基本上都是如何修改MySQL密码的帖子多。类似针对碰见这样问题的真没找到,只有摸索尝试。
不会因为一个MySQL密码不一致导致设计好的网站重头来过吧。当然,下面我找到了一个轻松解决方案。
前提条件:
1、当然是已经在服务器端MySQL数据库中建立和导入了本地主机中备份的数据库文件,以joomla内容网站设计系统为例,一般文件名为joomla.sql.zip
2、然后上传并在根目录中释放了网站压缩包。
这时你会习惯性的打开你设计并期待的网站首页,不过就像上面说的因为MySQL数据库密码不一致,不管前台还是后台只会显示:“Database
Error: Unable to connect to the database:Could not connect to
MySQL”
解决办法是,首先最好先停用或关闭MySQL数据库,命令行方式停止MySQL数据库服务为:
net stop MySQL
关闭MySQL数据库服务为:
bin\mysqladmin –no-defaults -u root shutdown
不过我下面的操作并没有停用或关闭MySQL数据库服务也可以。
到你上传网站的根目录中找到config.php或configuration.php文件,文件名上鼠标右键属性,去掉“只读”标志。再用行编辑此文件,找到类似于下面字段:
var $session_handler = ‘database’;
var $password = ‘******’;
其中******就是你本地主机原MySQL数据库密码,修改这个密码与上传服务器中MySQL数据库密码一致,保存退出。
请注意不同的PHP网站设计配置目录和文件名不尽相同,但同理的都是要找到含有MySQL数据库的配置文件。例如有的不在根目录下,可在config目录中找到类似config.php的文件。找到如下代码后编辑:
define(‘DB_HOSTNAME’,'localhost’);
define(‘DB_USER’,'这里显示数据库用户名’);
define(‘DB_PASSWORD’,'*******’);
修改完毕后这时再刷新你网站的前台和后台,期待中的页面出现了吧。