CI mysql连接问题

博客记录了在CI框架中遇到的MySQL连接问题的解决过程。尝试修改php.ini的socket设置、删除mysql数据、卸载重装MySQL,最终通过将数据库配置中的hostname从'localhost'改为'127.0.0.1'恢复了连接。
Message: mysqli::real_connect(): (HY000/2002): No such file or directory

CI突然出现这样的错误,数据库客户端能正常连接。

试过各种方法最后有些摸不着头脑地修复了问题。这里记录下解决过程,以免以后再犯。

  • 查到又说是mysql的socket文件的问题,所以试着修改了php.ini里面的mysql,mysqli,pdo的socket文件为默认的/tmp/mysql.sock。brew安装的php默认配置文件路径为/usr/local/etc/php/7.0下面,而我修改的是位于/etc目录下复制出来的所谓的默认php.ini文件。问题修复后我删除了该php.ini 文件,程序运行正常,证明此方法无效。
kano@Mac /p/etc> cd /usr/local/etc/php/7.0/
kano@Mac /u/l/e/p/7.0> ls
conf.d               php-fpm.conf.default php.ini
php-fpm.conf         php-fpm.d            redis.so
kano@Mac /u/l/e/p/7.0>

  • 一说是删除/usr/data/mysql下面的数据,然后我在各种尝试无果后两次卸载了mysql。第二次卸载的原因是以为第一次卸载在/usr/local/var/mysql(brew安装的mysql配置目录)没有完全卸载。事实证明,逃避问题也不能奏效。重装后问题依旧。
kano@Mac /u/l/v/mysql> ls
Mac.err            client-cert.pem    ibdata1            private_key.pem
Mac.pid            client-key.pem     ibtmp1             public_key.pem
auto.cnf           ib_buffer_pool     mysql              server-cert.pem
ca-key.pem         ib_logfile0        noob               server-key.pem
ca.pem             ib_logfile1        performance_schema sys
kano@Mac /u/l/v/mysql> cd ..
kano@Mac /u/l/var> ls
db       homebrew lib      log      mysql    run      www
  • 检查数据库配置
    $db['default'] = array(
    	'dsn'	=> '',
    	'hostname' => 'localhost',
    	'username' => 'root',
    	'password' => '123456',
    	'database' => 'noob',
    	'dbdriver' => 'mysqli',
    	'dbprefix' => 'nb_',
    	'pconnect' => TRUE,
    	'db_debug' => (ENVIRONMENT !== 'production') ? TRUE : FALSE,
    	'cache_on' => FALSE,
    	'cachedir' => '',
    	'char_set' => 'utf8',
    	'dbcollat' => 'utf8_general_ci',
    	'swap_pre' => '',
    	'encrypt' => FALSE,
    	'compress' => FALSE,
    	'stricton' => FALSE,
    	'failover' => array(),
    	'save_queries' => TRUE
    );
  • 在修改hostname为127.0.0.1后数据库连接恢复。引自https://segmentfault.com/q/1010000000328531   测试发现,localhost连接还是有问题。待解决
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值