作者:新洋之家140 | 来源:互联网 | 2023-05-18 09:03
Message:mysqli::real_connect():(HY0002002):NosuchfileordirectoryCI突然出现这样的错误,数据库客户端能正常连接
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连接还是有问题。待解决