Показано с 1 по 9 из 9

Тема: Заменить драйвер php-mysql на php-mysqlnd в альтернативных версиях PHP

  1. #1
    Junior Member
    Регистрация
    09.02.2018
    Сообщений
    1

    По умолчанию Заменить драйвер php-mysql на php-mysqlnd в альтернативных версиях PHP

    Доброго дня!
    Возникла необходимость заменить драйвер php-mysql на php-mysqlnd в альтернативных версиях PHP.
    В нативной версии проблем не возникло, удалил без зависмостей:

    Код:
    rpm -e --nodeps mysql-server
    и потом yum install php-mysqlnd
    Проверяем:
    Код:
    php -i
    ...
    mysqlnd
    
    mysqlnd => enabled
    Version => mysqlnd 5.0.10 - 20111026 - $Id: e707c415db32080b3752b232487a435ee0372157 $
    Compression => supported
    SSL => supported
    Command buffer size => 4096
    Read buffer size => 32768
    Read timeout => 31536000
    Collecting statistics => Yes
    Collecting memory statistics => No
    Tracing => n/a
    Loaded plugins => mysqlnd,example,debug_trace,auth_plugin_mysql_native_password,auth_plugin_mysql_clear_password
    API Extensions => mysql,mysqli,pdo_mysql
    
    ...
    
    pdo_mysql
    
    PDO Driver for MySQL => enabled
    Client API version => mysqlnd 5.0.10 - 20111026 - $Id: e707c415db32080b3752b2324
    А как подобное сделать для альтернативной версии?

    Сейчас при /opt/php71/bin/php -i
    показывает вот такую картину:

    Код:
    ...
    mysqlnd
    
    mysqlnd => enabled
    Version => mysqlnd 5.0.12-dev - 20150407 - $Id: 38fea24f2847fa7519001be390c98ae0acafe387 $
    Compression => supported
    core SSL => supported
    extended SSL => supported
    Command buffer size => 4096
    Read buffer size => 32768
    Read timeout => 31536000
    Collecting statistics => Yes
    Collecting memory statistics => No
    Tracing => n/a
    Loaded plugins => mysqlnd,debug_trace,auth_plugin_mysql_native_password,auth_plugin_mysql_clear_password,auth_plugin_sha256_password
    API Extensions => mysqli
    ...
    
    pdo_mysql
    
    PDO Driver for MySQL => enabled
    Client API version => 5.6.37
    Жизненно необходимо для Laravel.

    CentOS 7, MySQL5.7

  2. #2
    Junior Member
    Регистрация
    11.07.2018
    Сообщений
    1

    По умолчанию

    Здравствуйте.

    Тоже столкнулся с этой проблемой. Есть ли решение?

  3. #3
    Senior Member
    Регистрация
    02.07.2009
    Сообщений
    613

    По умолчанию

    Тот же вопрос.

  4. #4
    Junior Member
    Регистрация
    27.08.2010
    Сообщений
    16

    По умолчанию

    Присоединяюсь, есть такая проблема

  5. #5
    Senior Member
    Регистрация
    09.04.2013
    Адрес
    Москва
    Сообщений
    2,049

    По умолчанию

    Модули значит скомпилированы под libmysqlclient
    Заменить можно только пересборкой

  6. #6
    Junior Member
    Регистрация
    27.08.2010
    Сообщений
    16

    По умолчанию

    Цитата Сообщение от Mobiaaa Посмотреть сообщение
    Модули значит скомпилированы под libmysqlclient
    Заменить можно только пересборкой
    Да, так и есть, под libmysqlclient. Может быть есть инструкция на эту тему?

  7. #7
    Junior Member
    Регистрация
    27.08.2010
    Сообщений
    16

    По умолчанию

    Нашел в /opt/php71/bin скрипты, которые, видимо используются панелью для компиляции. В частности, в php-config есть параметры, с которыми php собрано. Может кто-нибудь подскажет, как их использовать(и можно ли) для пересборки?

  8. #8
    Junior Member
    Регистрация
    27.08.2010
    Сообщений
    16

    По умолчанию

    В общем, получилось. Скачал исходники той же версии, собрал pdo_myslq и подменил оригинальную библиотеку. Работает беспроблемно. Набросал инструкцию. Открыт вопрос с обновлением альт.версии php. Возможно, можно изменить php-config, если он не обновляется автоматически

  9. #9
    Senior Member
    Регистрация
    16.12.2010
    Сообщений
    431

    По умолчанию

    сегодня столкнулся с проблемами работы pdo_mysql на всех версиях alt от isp - на laravel и yii
    нет апи API Extensions => pdo_mysql во всех версиях от alt isp

    в php из любого дистрибутива centos debian ubuntu оно есть:
    php -i | grep pdo
    /etc/php.d/20-pdo.ini,
    /etc/php.d/30-pdo_mysql.ini,
    /etc/php.d/30-pdo_sqlite.ini,
    API Extensions => mysqli,pdo_mysql,mysql
    pdo_mysql
    pdo_mysql.default_socket => /var/lib/mysql/mysql.sock => /var/lib/mysql/mysql.sock
    pdo_sqlite
    в любом php от isp alt его нет :
    API Extensions => mysqli
    mysqlnd statistics =>
    PDO drivers => mysql, sqlite
    pdo_mysql
    pdo_mysql.default_socket => /var/lib/mysql/mysql.sock => /var/lib/mysql/mysql.sock
    его нет потому что php скомпилен с libmysqlclient
    https://www.php.net/manual/ru/mysqli...y.choosing.php
    даже на самом сайте php пишут что такая компиляция нерекомендованная
    //Не рекомендованная, компилирует с libmysqlclient
    а нужно так
    //Рекомендованная, компилирует с mysqlnd
    $ ./configure --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-mysql=mysqlnd

    зачем же разработчикам isp создавать проблемы клиентам и плыть против течения ?

    пришлось руками компилить для каждого php alt расширение pdo_mysql и прописывать его вручную
    Debian 8/9 && Centos 7 ISPLite5

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •