当我尝试在我的域上上传此项目时,面临错误“无法使用提供的设置连接到您的数据库服务器”
我已检查 config.php 和 database.php 文件,所有信息均正确无误:
$db['default']['hostname'] = "etc.com";
$db['default']['username'] = "etc";
$db['default']['password'] = "etc@etc";
$db['default']['database'] = "visiting_link";
$db['default']['dbdriver'] = "mysql";
$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";
这个问题的解决方案是什么?请参考任何帮助材料。
我正在使用fileZilla。
谢谢!
答案 0 :(得分:14)
设置" db_debug"错误解决了我的问题。
我使用Snow Leopard。
编辑:db_debug只是模糊了我的方向。我的案例中的解决方案只是mysql.sock参考路径,在这个问题上解决了:Warning: mysql_connect(): [2002] No such file or directory (trying to connect via unix:///tmp/mysql.sock) in
OS X使用/tmp/mysql.sock,默认情况下php.ini引用/var/mysql/mysql.sock。只需创建符号链接即可解决问题:
sudo mkdir -p /var/mysql/ && cd /var/mysql/
sudo ln -s /tmp/mysql.sock ./mysql.sock
答案 1 :(得分:3)
尝试将'dbdriver'设置为'mysqli'
$db['default']['dbdriver'] = "mysqli";
这是MySQL改进的扩展(http://php.net/manual/en/book.mysqli.php),你的服务器可能被设置为使用它而不是标准的MySQL扩展。
当所有其他设置都正确时,我发现这种情况发生了几次,因为如果选择了错误的驱动程序,连接将会失败。
答案 2 :(得分:2)
如果数据库设置正确,则其他地方出现错误:
也许数据库不接受来自任何地方的连接;在这种情况下,您需要允许来自“用户名”@“服务器IP”
由于php.ini设置,防火墙或其他原因,PHP或服务器本身不允许连接
返回CI数据库设置,您需要确保它们是正确的。你确定“主机名”是否正确?
答案 3 :(得分:1)
如果您使用codeigniter 3,请使用最新版本的PHP。一旦我得到这些错误,然后我更新我的PHP然后它在我的项目成功设置codeigniter后工作。
请关注您的application / config / database.php
$active_group = 'default';
$query_builder = TRUE;
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'db_bdtimes', // your database name
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
答案 4 :(得分:0)
试试这个$ db ['default'] ['hostname'] =“localhost”;
答案 5 :(得分:0)
如果您在共享托管环境中遇到此问题。然后我认为您必须提供与cpanel / hosting credentials相同的数据库凭据。
$db['default']['hostname'] = "localhost";
$db['default']['username'] = "cpanel/hosting username";
$db['default']['password'] = "cpanel/hosting password";
$db['default']['database'] = "dbname";
答案 6 :(得分:0)
这解决了我在服务器上部署codeigniter CMS时遇到的问题,尽管它在localhost中使用TRUE属性工作正常。 将database.php中的这一行更改为:
$db['default']['pconnect'] = FALSE;
同时检查此行是否与服务器数据库的排序规则匹配(对于所有表格):
$db['default']['dbcollat'] = "utf8_general_ci";
答案 7 :(得分:0)
我收到此错误
<div id="container">
<h1>A Database Error Occurred</h1>
<p>Unable to connect to your database server using the provided settings.</p>
<p>Filename: C:/xampp/htdocs/WORK/Vishal/UI-Demo/system/database/DB_driver.php</p>
<p>Line Number: 436</p>
</div>
我通过在database.php
中将更改调试选项更改为FALSE来解决此错误'db_debug'=&gt; (环境!=='生产'),
要
'db_debug'=&gt; FALSE,强>
更改此
$db['default'] = array(
'dsn' => '',
'hostname' => 'XXXX',
'username' => 'XXXX',
'password' => 'XXXX',
'database' => 'XXX',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
要强>
$db['default'] = array(
'dsn' => '',
'hostname' => 'XXXX',
'username' => 'XXXX',
'password' => 'XXXX',
'database' => 'XXX',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => FALSE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);