我正在使用CI,我的数据库在梦想主机上。当我连接数据库时。它给出了这样的错误
发生数据库错误
无法使用提供的连接到数据库服务器 设置。
文件名:
/home/demo_smartmobe/demos.smartmobe.com/nayacinema/webpart/third_party/MX/Loader.php行号:98
我的数据库连接的ci代码是
$db['default']['hostname'] = 'hostname';
$db['default']['username'] = 'username';
$db['default']['password'] = '******';
$db['default']['database'] = 'database_name';
$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';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
用户名和密码是正确的。 我试过简单的PHP代码,它的工作原理。 Php Code就在这里。
$hostname = "mysql.demos.smartmobe.com"; // eg. mysql.yourdomain.com (unique)
$username = "nayacinema"; // the username specified when setting-up the database
$password = "****"; // the password specified when setting-up the database
$database = "nayacinema"; // the database name chosen when setting-up the database (unique)
$con=mysqli_connect($hostname,$username,$password,$database);
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}else{
echo 'done';
}
$result = mysqli_query($con,"SELECT * FROM TblUsers");
print_r($result);
while($row = mysqli_fetch_array($result))
{
echo $row['FirstName'] . " " . $row['LastName'];
echo "<br>";
}
可能是什么问题?我在Ci文件夹中添加了MX文件夹,使其成为HMVC。错误显示在/third_party/MX/Loader.php中。在localhost工作,但在现场有错误。请帮助我。谢谢你
答案 0 :(得分:0)
您说明了您的用户名和密码是否正确,但主机名呢?
将您的主机名设置修改为正确的主机名。
E.g。
$db['default']['hostname'] = 'localhost';
或
$db['default']['hostname'] = '127.0.0.1';
您还需要更改$db['default']['database_name']
以匹配您尝试使用的数据库的名称。
答案 1 :(得分:0)
您需要从Dreamhost获取正确的数据库连接信息。您可以在Dreamhost Web Panel中的左侧MySQL Databases选项卡下找到为该域设置的域。在该页面下,您可以找到主机名,数据库和用户名。如果单击有权访问数据库的用户名,则可以找到密码。将这些值放入database.php
配置文件中,如下面的字段所示。
$db['default']['hostname'] = 'mysql.example.com';
$db['default']['port'] = "3306";
$db['default']['username'] = 'mysql_username';
$db['default']['password'] = 'mysql_password';
$db['default']['database'] = 'mysql_database';
答案 2 :(得分:0)
首先,如果您在同一台PC中访问数据库。
(localhost and 127.0.0.1
是相同的)
如果没有,主机名应由DNS名称或包含域名标识。
如果数据库端口不是默认端口(3306),则应将其包含在配置中。
就像你的php中的代码一样:
$db['default']['hostname'] = 'mysql.demos.smartmobe.com';
$db['default']['username'] = 'nayacinema';
$db['default']['password'] = '******';
$db['default']['database'] = 'nayacinema';
$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';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
//$db['default']['port'] = 3307; //modify if the port is not the default 3306