我在我的Macbook pro OSX Sierra上使用Homebrew安装了MariaDB v10.2.8,安装顺利,服务在端口3816上启动,我可以通过命令行连接数据库并与之交互:
我有Sequel Pro,它附带了MAMP Pro(我已经在端口3306上安装并运行了MySQL 5.6.35的副本)。根据这个截图,只允许我通过套接字连接到这个数据库显然在端口3306上:
现在我尝试将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;
任何想法可能是错误的以及如何解决它?
答案 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的其他虚拟主机可能无法正常工作,但至少我知道在哪里修复它。