MariaDB 使用错误的主机,无法连接 php 应用程序
Posted
技术标签:
【中文标题】MariaDB 使用错误的主机,无法连接 php 应用程序【英文标题】:MariaDB using wrong host, unable to connect php app 【发布时间】:2018-02-02 23:23:06 【问题描述】:我已经在我的 Macbook pro OSX Sierra 上使用 Homebrew 安装了 MariaDB v10.2.8,安装成功,服务在端口 3816 上启动,我可以通过命令行连接数据库并与之交互:
我有 Sequel Pro,它与 MAMP Pro 一起提供(我已经在端口 3306 上安装并运行了 mysql 5.6.35 的副本)。根据此屏幕截图,这仅让我通过套接字连接到该数据库,显然是在端口 3306 上:
现在我正在尝试将 php (Codeigniter) 应用程序连接到此数据库,但没有任何效果,我收到“无法使用提供的设置连接到您的数据库服务器。”
这是 Codeigniter 设置
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'user';
$db['default']['password'] = '123';
$db['default']['port'] = 3816;
$db['default']['database'] = 'dbname';
$db['default']['dbdriver'] = 'mysqli';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = FALSE;
$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'] = FALSE;
$db['default']['stricton'] = FALSE;
任何想法可能是错误的以及如何解决它?
【问题讨论】:
您是否尝试使用 IP 地址?许多客户端只会将套接字用于“localhost”。甚至 127.0.0.1 也应该可以工作。 在我得到的 CI 应用程序上使用 127.0.0.1 (HY000/2002):连接被拒绝 From this link 该错误消息是因为端口号不正确。要在配置中设置端口号,请使用$db['default']['port'] = 5432;
which is documented at the bottom of this page。
CI 在配置$db['default']['port'] = 3816;
中设置了正确的端口,根据第一个屏幕截图
您应该向我们展示您从 CodeIgniter 获得的配置,而不是向我们展示一些无用的图片。
【参考方案1】:
问题出在 MAMP Pro,以及 mysql.default_socket 的路径:
; Default socket name for local MySQL connects. If empty, uses the built-in
; MySQL defaults.
mysql.default_socket = /Applications/MAMP/tmp/mysql/mysql.sock
我将值留空,重新启动服务器并运行。
详细说明:经过大量时间和阅读后,我注意到 Sequel Pro 不允许我使用 localhost
作为主机,如果“标准”连接并显示错误消息“您已输入” localhost' 用于非套接字连接。[通过套接字连接] [使用 127.0.0.1]"。
尝试了 IP,尝试了套接字,并首先尝试使用与包含 MariaDB 设置的 my.cfn.default
文件中相同的路径,但它失败了,所以我将该字段留空并且它有效。
在线帖子指出 php.ini 文件如何包含 mysql 套接字的路径,我去发现它们指向它的 MAMP 特定版本,所以我删除了评论中提到的值,如果它为空则使用内置-在
这意味着使用这个特定版本的 PHP + 常规 MySQL 的其他虚拟主机可能无法工作,但至少我知道在哪里修复它。
【讨论】:
以上是关于MariaDB 使用错误的主机,无法连接 php 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
SqlAlchemy 的 MySQL (mariaDB) 连接错误