Codeigniter 连接到使用 centOS 和 mariadb 作为数据库管理的 SSH 服务器的可能设置是啥?
Posted
技术标签:
【中文标题】Codeigniter 连接到使用 centOS 和 mariadb 作为数据库管理的 SSH 服务器的可能设置是啥?【英文标题】:What is the possible setting for Codeigniter connecting to a SSH server with centOS and mariadb as database management?Codeigniter 连接到使用 centOS 和 mariadb 作为数据库管理的 SSH 服务器的可能设置是什么? 【发布时间】:2018-04-28 02:48:13 【问题描述】:我使用的服务器是ssh连接,由centOS运行,它使用LAMP作为平台。
因为是centOS,mariadb是它唯一可用的数据库管理。我无法通过sudo yum install mysql-server
命令安装mysql。
我在本地使用 codeigniter 创建了一个项目。
我无法连接到数据库。错误给出如下:
A php Error was encountered
Severity: Warning
Message: mysqli::real_connect(): (HY000/2002): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
Filename: mysqli/mysqli_driver.php
我的 codeigniter 中的 db 设置是:
$active_group = 'default';
$query_builder = TRUE;
$db['default'] = array(
'dsn' => '',
'hostname' => '*server-ip-address*',
'port' => '*server-port-number*',
'username' => 'root',
'password' => 'root@999',
'database' => 'listingapp_db',
'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
);
我只是想也许我的数据库设置有误。
dbdriver
设置有什么关系吗?
我尝试将mysqli
更改为mariadb
,仍然没有进展。
什么可能是可以与服务器的centOS mariadb 共同使用的有效设置?
我尝试 sudo iptables -vnL 检查防火墙,结果如下:
Chain INPUT (policy DROP 10924 packets, 630K bytes)
pkts bytes target prot opt in out source destination
40905 5353K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
1860K 2702M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x3F/0x00
4 172 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:!0x17/0x02 state NEW
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x3F/0x3F
158 9480 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
445 28059 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
57 2800 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:2202
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 1133K packets, 103M bytes)
pkts bytes target prot opt in out source destination
【问题讨论】:
可以在codeigniter中用mysqli连接mariadb,没问题。可能是centos防火墙阻塞了端口。 @ourmandave 啊,我明白了。但我怎样才能解锁一个端口?什么是示例命令? 取决于您运行的 Centos 版本以及您使用的是 firewalld 还是 iptables。你可能应该用谷歌搜索那个。 @ourmandave 我试过sudo iptables -vnL
。我在上面编辑了结果...
【参考方案1】:
我现在已经解决了我的问题。打开我使用的端口,然后在mysql中授予root用户权限。
【讨论】:
以上是关于Codeigniter 连接到使用 centOS 和 mariadb 作为数据库管理的 SSH 服务器的可能设置是啥?的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 codeigniter 连接到 SQL SERVER 数据库
Codeigniter 无法连接到外部 SQL Server
CodeIgniter 3.1.10:无法通过 DSN 使用 ODBC 连接到远程数据库