今天我在本地主机上使用wamp服务器开始工作时,一切都按预期进行。然后我碰巧点击了wamp图标,可能已经点击了一些配置设置。发生的很快,所以不记得到底发生了什么(只是随机单击按钮),但是我认为单击按钮时我在此菜单上。 The menu on which the button was clicked
此后,Wamp服务器重新启动,从那时起,我无法使用CodeIgniter项目连接到数据库。 当我尝试打开一个项目时,它将引发此错误 The error it throws when I open a project
当我尝试调试代码以验证CodeIgniter项目的一个文件(位于config / database.php文件中)中的问题时。 我把这段代码知道是什么问题。
echo '<pre>';
print_r($db['default']);
echo '</pre>';
echo 'Connecting to database: ' .$db['default']['database'];
$dbh=mysql_connect
(
$db['default']['hostname'],
$db['default']['username'],
$db['default']['password'])
or die('Cannot connect to the database because: ' . mysql_error());
mysql_select_db ($db['default']['database']);
echo '<br /> Connected OK:' ;
die( 'file: ' .__FILE__ . ' Line: ' .__LINE__);
之后,它说明了为什么无法连接数据库。这就是现在显示的内容。
我一直在寻找可能的解决方案,但找不到任何解决方案。有人可以帮我吗?这对我来说是新的。
非常感谢。
答案 0 :(得分:0)
您是否尝试通过phpMyAdmin连接到数据库?可以吗?
很难说出您在那儿做了什么,但是为了节省时间,我建议您:
通过phpMyAdmin连接导出数据库,重新安装WAMP并放回数据库。
答案 1 :(得分:0)
检查以下步骤,将会很有帮助:
当您仅使用“ localhost”时,MySQL客户端库将尝试使用Unix域套接字进行连接,而不是TCP / IP连接。该错误告诉您,名为MySQL的套接字无法用于建立连接,可能是因为该套接字不存在(错误编号2)。
来自MySQL文档:
在Unix上,MySQL程序特别对待主机名localhost,与其他基于网络的程序相比,它可能与您期望的方式不同。为了连接到本地主机,MySQL程序尝试使用Unix套接字文件连接到本地服务器。即使给--port或-P选项指定端口号,也会发生这种情况。为确保客户端与本地服务器建立TCP / IP连接,请使用--host或-h指定主机名值127.0.0.1,或本地服务器的IP地址或名称。您还可以使用--protocol = TCP选项来明确指定连接协议,即使是本地主机也是如此。
有几种方法可以解决此问题。
您可以只使用TCP / IP代替Unix套接字。
您可以在连接时使用127.0.0.1而不是localhost来完成此操作。
不过,Unix套接字可能更快捷,更安全地使用。您可以在php.ini中更改套接字:打开MySQL配置文件my.cnf以查找MySQL在何处创建套接字,并将PHP的mysqli.default_socket设置为该路径。在我的系统上是/var/run/mysqld/mysqld.sock。
打开连接时,直接在PHP脚本中配置套接字。例如:
$ db = new MySQLi('localhost','kamil','***','',0,'/var/run/mysqld/mysqld.sock')