您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
workerman常用组件-MySQL组件-workerman之mysql-pdo_mysql安裝
发布时间:2021-12-19 22:44:24编辑:雪饮阅读()
Workerman/MySQL
说明
常驻内存的程序在使用mysql时经常会遇到mysql gone away的错误,这个是由于程序与mysql的连接长时间没有通讯,连接被mysql服务端踢掉导致。本数据库类可以解决这个问题,当发生mysql gone away错误时,会自动重试一次。
依赖的扩展
该mysql类依赖pdo和pdo_mysql两个扩展,缺少扩展会报Undefined class constant 'MYSQL_ATTR_INIT_COMMAND' in ....错误。
命令行运行php -m会列出所有php cli已安装的扩展,如果没有pdo 或者 pdo_mysql,请自行安装。
那麽我的系統目前是缺少pdo_mysql
[root@localhost ext]# /usr/local/php734/bin/php -c /usr/local/php734/lib/php/php.ini -m | grep pdo_
pdo_sqlite
那麽這裏走了很多彎路,以爲直接編譯pdo_mysql即可,誰知道編譯安裝了pdo_mysql擴展后提示大概意思是需要mysqlnd擴展,那麽安裝mysqlnd擴展后又提示大概意思是mysqlnd擴展不支持動態加載。
所以並不是所有php擴展都支持動態加載。
那麽最後只能重裝php,結合之前的編譯參數,重新組裝新的php編譯命令如:
./configure --prefix=/usr/local/php734 --enable-pcntl --enable-mysqlnd --enable-pcntl --enable-zip
最後make && make之後就完成了
接下來對於pdo_mysql你還需要自己去編譯安裝,它不是直接内置的,在源代碼的ext目錄中。
cd ext
cd pdo_mysql
/usr/local/php734/bin/phpize
./configure --with-php-config=/usr/local/php734/bin/php-config
make && make install
然後將pdo_mysql.so放在php.ini配置文件中的擴展配置那段即可。
編譯後的pdo_mysql.so位置如:
ls /usr/local/php734/lib/php/extensions/no-debug-non-zts-20180731/
php.ini位於:
[root@localhost pdo_mysql]# /usr/local/php734/bin/php --ini
Configuration File (php.ini) Path: /usr/local/php734/lib
Loaded Configuration File: /usr/local/php734/lib/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed: (none)
都ok后,我們的環境擴展就ok了。
[root@localhost pdo_mysql]# /usr/local/php734/bin/php -m | grep -i "mysql\|pdo"
mysqlnd
PDO
pdo_mysql
pdo_sqlite
关键字词:workerman,MySQL,pdo_mysql,mysql,mysqlnd
相关文章
- workerman常用组件-FileMonitor文件监控组件
- workerman常用组件-channel分佈式通訊組件-channelCli
- workerman常用组件-channel分佈式通訊組件-channelCli
- workerman常用组件-channel分佈式通訊組件-channelCli
- workerman常用组件-channel分佈式通訊組件-channelCli
- workerman常用组件-channel分佈式通訊組件-channelCli
- workerman常用组件-channel分佈式通訊組件-channelSer
- workerman常用组件-channel分佈式通訊組件
- workerman常用组件-GlobalData变量共享组件-GlobalDat
- workerman常用组件-GlobalData变量共享组件-GlobalDat