php cli 客户端模式下报错 Uncaught exception ‘PDOException‘

php cli 客户端模式下报错 Uncaught exception 'PDOException'

cli模式下执行php文件

在php cli模式下执行php脚本:
qipa250.php内容如下:

$pdo = new PDO('mysql:host=localhost;dbname=qipa250','root','123456');
var_dump($pdo);die;

执行
php qipa250.php
报错:

PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002] No such file or directory' in /var/local/www/swoole/task.php:3
Stack trace:
#0 /var/local/www/swoole/task.php(3): PDO->__construct('mysql:host=loca...', 'root', '123456')
#1 {main}
  thrown in /var/local/www/swoole/task.php on line 3
[root@localhost swoole]# php -i | grep pdo
Configure Command =>  './configure'  '--prefix=/usr/local/php' '--with-config-file-path=/usr/local/php/etc' '--enable-fpm' '--with-fpm-user=www' '--with-fpm-group=www' '--with-mysql=mysqlnd' '--with-mysqli=mysqlnd' '--with-pdo-mysql=mysqlnd' '--with-iconv-dir' '--with-freetype-dir=/usr/local/freetype' '--with-jpeg-dir' '--with-png-dir' '--with-zlib' '--with-libxml-dir=/usr' '--enable-xml' '--disable-rpath' '--enable-bcmath' '--enable-shmop' '--enable-sysvsem' '--enable-inline-optimization' '--with-curl' '--enable-mbregex' '--enable-mbstring' '--with-mcrypt' '--enable-ftp' '--with-gd' '--enable-gd-native-ttf' '--with-openssl' '--with-mhash' '--enable-pcntl' '--enable-sockets' '--with-xmlrpc' '--enable-zip' '--enable-soap' '--with-gettext' '--disable-fileinfo' '--enable-opcache'
API Extensions => pdo_mysql,mysqli,mysql
pdo_mysql
pdo_mysql.default_socket => /tmp/mysql.sock => /tmp/mysql.sock
pdo_sqlite

分析错误原因

1、 数据库设置 (主机、数据库、用户、密码)均正确

2、 检查 mysql.sock 文件路径位置是否设置正确

打开 php.ini ,检查 default_socket 设置的路径是否正确

如启动 Mysql 后,使用 如下命令找到 mysql.sock 的路径

ps aux | grep -i mysql

输出:

root 2532 0.0 0.1 108348 1516 pts/0 S 20:29 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql
mysql 2736 0.0 45.3 1346676 455308 pts/0 Sl 20:29 0:02 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock

修改 php.ini 中,所有关于 “default_socket” 的所有路径为 “/var/lib/mysql/mysqld.sock”

修改后如下:

default_socket_timeout = 60
pdo_mysql.default_socket=/var/lib/mysql/mysqld.sock
mysql.default_socket =/var/lib/mysql/mysqld.sock
mysqli.default_socket =/var/lib/mysql/mysqld.sock

3、重启 apache或nginx服务器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值