codeigniter mysql error,php-CodeIgniter:无法使用提供的设置连接到数据库服务器错误消息...

php-CodeIgniter:无法使用提供的设置连接到数据库服务器错误消息

我一直使用MySQL驱动程序来正常使用CI。 我想改用MySQL驱动程序,但是一旦更改它(只需在MySQL末尾添加“ i”并添加端口号),我会收到以下错误消息

发生数据库错误

无法使用提供的设置连接到数据库服务器。

文件名:core / Loader.php

行号:232

我的设置如下所示:

$db['default']['hostname'] = $hostname;

$db['default']['username'] = $username;

$db['default']['password'] = $password;

$db['default']['database'] = $database;

$db['default']['dbdriver'] = 'mysqli';

$db['default']['port'] = "3306";

$db['default']['dbprefix'] = '';

$db['default']['pconnect'] = TRUE;

$db['default']['db_debug'] = TRUE;

$db['default']['cache_on'] = FALSE;

$db['default']['cachedir'] = '';

$db['default']['char_set'] = 'utf8';

$db['default']['dbcollat'] = 'utf8_general_ci';

$db['default']['swap_pre'] = '';

$db['default']['autoinit'] = TRUE;

$db['default']['stricton'] = FALSE;

where

$hostname = 'localhost';

$username = 'myusernamegoeshere';

$password = 'mypasswordgoeshere';

$database = 'mydatabasenamegoeshere';

我在用着:

CI 2.0.2 php 5.3.4 Apache / 2.2.17(Unix)mysql 5.5.13 mysql.default_port 3306

我做错什么了吗?

谢谢,

13个解决方案

104 votes

我认为,PHP配置有问题。

首先,在./config/database.php末尾使用此脚本调试数据库连接:

...

...

...

echo '

';

print_r($db['default']);

echo '

';

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 '
Connected OK:' ;

die( 'file: ' .__FILE__ . ' Line: ' .__LINE__);

然后查看问题所在。

Valeh Hajiyev answered 2020-02-14T18:36:27Z

49 votes

今天,我将这种问题降落在实时服务器中,并解决了更改此行的问题

$db['default']['db_debug'] = TRUE;

$db['default']['db_debug'] = FALSE;

imsyedahmed answered 2020-02-14T18:36:51Z

29 votes

对我来说,问题出在php.ini文件中。 mysql.default_socket属性指向一个不存在的目录中的文件。 该属性指向/var/mysql/mysql.sock,但在OSX中,该文件位于/tmp/mysql.sock。

一旦我更新了php.ini中的条目并重新启动了网络服务器,问题就解决了。

ken answered 2020-02-14T18:35:58Z

29 votes

我通过改变解决了这个问题

$db['default']['pconnect'] = TRUE;至$db['default']['pconnect'] = FALSE;

在/application/config/database.php中

kamal answered 2020-02-14T18:37:20Z

17 votes

SET $db['default']['db_debug']设置为FALSE而不是TRUE。

$db['default']['db_debug'] = FALSE;

Bhumi Singhal answered 2020-02-14T18:37:40Z

3 votes

如果仅此而已,您可能没有在PHP配置中安装或启用mysqli驱动程序。

使用phpinfo()或在您的php.ini文件中(extension = php_mysqli ....)检查其是否存在。

Craig A Rodway answered 2020-02-14T18:38:04Z

2 votes

(CI 3)对我来说,有效的方法正在改变:

'hostname' => 'localhost' to 'hostname' => '127.0.0.1'

Shina answered 2020-02-14T18:38:24Z

2 votes

将@Valeh Hajiyev扩展为mysqli驱动程序测试的明确答案:

在./config/database.php末尾使用此脚本调试数据库连接:

/* Your db config here */

$db['default'] = array(

// ...

'dbdriver' => 'mysqli',

// ...

);

/* Connection test: */

echo '

';

print_r($db['default']);

echo '

';

echo 'Connecting to database: ' .$db['default']['database'];

$mysqli_connection = new MySQLi($db['default']['hostname'],

$db['default']['username'],

$db['default']['password'],

$db['default']['database']);

if ($mysqli_connection->connect_error) {

echo "Not connected, error: " . $mysqli_connection->connect_error;

}

else {

echo "Connected.";

}

die( 'file: ' .__FILE__ . ' Line: ' .__LINE__);

MarcM answered 2020-02-14T18:38:49Z

1 votes

问题解决了!

我首先在XAMPP中建立了所有网站,然后又将其转移到LAMP(在SUSE安装的LAMP中),出现此错误。

问题在于,不应初始化database.php文件中的这些参数。只需将用户名和密码留空即可。就是这样

(我的第一个and脚的猜测是那是由于mysql的旧版本,因为内置安装附带了旧版本。

Helena answered 2020-02-14T18:39:22Z

0 votes

将$db['default']['dbdriver'] = 'mysql'更改为$db['default']['dbdriver'] = 'mysqli'

Bappi Datta answered 2020-02-14T18:39:42Z

0 votes

就我而言,存储是个问题。 我的硬盘已满...在硬件中腾出一些空间,您的站点将正常运行

Ammad Naeem answered 2020-02-14T18:40:02Z

-1 votes

如果您使用此方法保护服务器安全:[http://www.thonky.com/how-to/prevent-base-64-decode-hack/]

然后得到错误:Code Igniter needs mysql_pconnect() in order to run。

当我意识到服务器上的所有Code Igniter网站都已损坏时,我就弄清楚了,所以这不是本地化的连接问题。

Lawrence answered 2020-02-14T18:40:32Z

-2 votes

我已经解决了 就我而言,我只是更改了配置。 '主机名'成为'本地主机'

$active_group = 'default';

$active_record = TRUE;

$db['default']['hostname'] = 'localhost';

achie answered 2020-02-14T18:40:52Z

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值