我使用PHP,Mysql和Codeignater版本3创建一个网站。然后在iPage上托管它。当我上传时,我在配置文件中进行了更改。
$db['default'] = array(
'dsn' => '',
'hostname' => '66.96.147.118',
'username' => 'bit_root',
'password' => 'root',
'database' => 'bit_shilp',
'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
);
我使用codeignater版本3.在本地它工作得很好。但在现场网站上它会出错。
请参阅此链接http://bitshilp.com/BitShilp/index.php/home
它给出了这样的错误:
遇到PHP错误
严重性:警告
消息:mysqli :: real_connect():( HY000 / 2002):拒绝连接
文件名:mysqli / mysqli_driver.php
行号:161
回溯:
文件:/hermes/bosnaweb13a/b2582/ipg.bitshilpcom/BitShilp/application/controllers/Home.php 行:7 功能:__construct
文件:/hermes/bosnaweb13a/b2582/ipg.bitshilpcom/BitShilp/index.php 行:292 功能:require_once 遇到PHP错误
严重性:警告
消息:无法修改标头信息 - 已经发送的标头(输出开始于 /hermes/bosnaweb13a/b2582/ipg.bitshilpcom/BitShilp/system/core/Exceptions.php:272)
文件名:core / Common.php
行号:568
回溯:
文件:/hermes/bosnaweb13a/b2582/ipg.bitshilpcom/BitShilp/application/controllers/Home.php 行:7 功能:__construct
文件:/hermes/bosnaweb13a/b2582/ipg.bitshilpcom/BitShilp/index.php 行:292 功能:require_once
感谢。
答案 0 :(得分:0)
如果MySQL服务器启动并运行 - 那么这看起来像是一些传输(例如防火墙)问题。第一步是尝试下面的telnet命令 - 如果它显示错误,那么问题与PHP或MySQL无关:
__declspec( align( 16 ) ) class PhysicsSystem
{
public:
static const int32_t MaxEntities = 65535;
__declspec( align( 16 ) ) struct VectorizedXYZ
{
double mX[ MaxEntities ];
double mY[ MaxEntities ];
double mZ[ MaxEntities ];
VectorizedXYZ()
{
memset( mX, 0, sizeof( mX ) );
memset( mY, 0, sizeof( mY ) );
memset( mZ, 0, sizeof( mZ ) );
}
};
void Update( double dt )
{
for ( int32_t i = 0; i < MaxEntities; ++i ) <== 1200
{
mTmp.mX[ i ] = mPos.mX[ i ] + mVel.mX[ i ] * dt;
mTmp.mY[ i ] = mPos.mY[ i ] + mVel.mY[ i ] * dt;
mTmp.mZ[ i ] = mPos.mZ[ i ] + mVel.mZ[ i ] * dt;
}
}
private:
VectorizedXYZ mTmp;
VectorizedXYZ mPos;
VectorizedXYZ mVel;
};
(成功时会打印mysql版本+一些随机字符)
答案 1 :(得分:0)
Facing same issue in codeigniter
$db['develop'] = array(
'dsn' => '',
'hostname' => 'xxxxxxxxxxx.us-east-1.rds.amazonaws.com',
'username' => 'xxxxxxxx',
'password' => 'xxxxxxxx',
'database' => 'xxxxxxx',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
// 'char_set' => 'utf8',
// 'dbcollat' => 'utf8_general_ci',
'char_set' => 'utf8mb4',
'dbcollat' => 'utf8mb4_unicode_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
Not able to connect db
A PHP Error was encountered
Severity: Warning
Message: mysqli::real_connect(): (HY000/2002): Connection timed out
Filename: mysqli/mysqli_driver.php
Line Number: 201
答案 2 :(得分:0)
使用AWS RDS MySQL,我遇到同样的问题。看了各种各样的消息来源,但截至本帖,几乎都缺乏答案。 虽然this answer帮助了我,但请记住更新服务器上的主机名。访问您的SSH并按照以下步骤操作:
cd /etc/
sudo nano hosts
现在,在此处附加您的主机名:例如:
127.0.0.1 localhost
127.0.0.1 subdomain.domain.com [if cname redirected to endpoints]
127.0.0.1 xxxxxxxx.xxxx.xxxxx.rds.amazonaws.com [Endpoints]
现在,按如下方式配置config/database.php
:
$active_group = 'default';
$query_builder = TRUE;
$db['default'] = array(
'dsn' => '',
'hostname' => '35.150.12.345',
'username' => 'user-name-here',
'password' => 'password-here',
'database' => 'database-name-here',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
其中35.150.12.345
是您的 IPv4公共IP ,位于ec2-dashboard > Network Interfaces > Description : RDSNetworkInterface >> IPv4 Public
IP(&#39; 35.150.12.345&#39;)那里。
注意:请注意,只有IPV4才能在&#39;主机名&#39;选项。 hostname,cname,domains将输出数据库连接错误。
答案 3 :(得分:0)
您可以使用以下命令检查 mysql 是否正在运行:
mysql.server status
如果不是,则开始:
mysql.server start
同样停止:
mysql.server stop
答案 4 :(得分:0)
在 Codeigniter 中将您的 'hostname' => '35.150.12.345' 更改为 'hostname' => 'localhost',
答案 5 :(得分:0)
如果这是 Fedora 中的问题 每次都必须启动 MariaDB 就跑
sudo systemctl start mariadb
还要记住,每次启动时,都必须以同样的方式启动Apache 所以每次使用上面的代码之前都要运行下面的代码
sudo service httpd start
祝你好运
答案 6 :(得分:0)
我正在使用 Pop!_OS。在最近的操作系统升级到 21.4 之后,似乎 MySQL 包被自动删除/丢失了。虽然 mysql --version
显示我有可用的 MySQL。
我尝试了所有其他可能的解决方案,但没有一个奏效。再次安装 MySQL 后为我解决了这个问题。我已经运行了以下命令。顺便说一句,我没有丢失任何数据库。
sudo apt-get install mariadb-server mariadb-client