MariaDB使用错误的主机,无法连接php应用程序

时间:2017-08-24 23:39:58

标签: php mysql macos codeigniter mariadb

我在我的Macbook pro OSX Sierra上使用Homebrew安装了MariaDB v10.2.8,安装顺利,服务在端口3816上启动,我可以通过命令行连接数据库并与之交互: Screenshot Command Line

我有Sequel Pro,它附带了MAMP Pro(我已经在端口3306上安装并运行了MySQL 5.6.35的副本)。根据这个截图,只允许我通过套接字连接到这个数据库显然在端口3306上: Screenshot SequelPro

现在我尝试将PHP(Codeigniter)应用程序连接到此数据库并且没有任何作用,我得到了#34;无法使用提供的设置连接到数据库服务器。"

这是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;

任何想法可能是错误的以及如何解决它?

1 个答案:

答案 0 :(得分: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文件中相同的路径,但它失败了,所以我将该字段留空并且有效。< / p>

一篇在线帖子指出了php.ini文件如何包含mysql套接字的路径,我去了,发现它们指向MAMP特定版本的它,所以我删除了值,因为注释提到如果为空它使用内置-in

这意味着使用这个特定版本的PHP +常规MySQL的其他虚拟主机可能无法正常工作,但至少我知道在哪里修复它。