С какой версии php не поддерживается mysql
Чтобы эти функции были доступны, PHP должен быть собран с поддержкой модуля mysqli.
MySQL 8
При запуске PHP до версии 7.1.16 или PHP 7.2 до 7.2.4, установите плагин по умолчанию MySQL 8 Server в mysql_native_password, иначе вы увидите ошибки, похожие на The server requested authentication method unknown to the client [caching_sha2_password], даже когда caching_sha2_password не используется.
Это связано с тем, что MySQL 8 по умолчанию использует caching_sha2_password, и плагин не распознается старыми версиями PHP (mysqlnd). Вместо этого измените это, установив default_authentication_plugin=mysql_native_password в my.cnf . Плагин caching_sha2_password будет поддерживаться в будущей версии PHP. Пока же модуль mysql_xdevapi поддерживает его.
User Contributed Notes
There are no user contributed notes for this page.
- Установка и настройка
- Требования
- Установка
- Настройка во время выполнения
- Типы ресурсов
- Copyright © 2001-2023 The PHP Group
- My PHP.net
- Contact
- Other PHP.net sites
- Privacy policy
Прекращение поддержки расширения MySQL в PHP
Да, вы совершенно правильно прочитали этот заголовок: в прошлые выходные Филип Олсон отправил в список рассылки php-internals предложение о начале постепенного ухода от расширения mysql в будущих версиях php. Это, однако, не означает, что mysql уже не будет в PHP 5.4, но с версии 5.5 уже начнётся работа по обновлению документации и добавлению E_DEPRECATED ошибок к функциям mysql.
В качестве замены текущему нативному расширению предпологается использовать расширение mysqli или PDO, а возможно mysqlnd.
В результате, в будущих версиях PHP5 (начиная с 5.5 или 5.6) вызовы таких функций, как mysql_pconnect, mysql_query и так далее будут пораждать весьма неприятные уведомления E_DEPRECATED, а уже в версии PHP 6 код этих функций будет, скорей всего, полностью удалён из PHP.
Функции MySQL (PDO_MYSQL)
PDO_MYSQL — это драйвер, который реализует интерфейс PHP Data Objects (PDO) и предоставляет доступ из PHP к базе данных MySQL версий 3.x, 4.x и 5.x.
PDO_MYSQL будет использовать родную поддержку подготовленных запросов, пристутствущих в MySQL 4.1 и выше. Если вы используете более старую версию клиентских библиотек mysql, PDO будет эмулировать их для вас.
Внимание
Осторожно: Некоторые типы MySQL таблиц (механизмы хранения, движков) не поддерживают транзакции. При написании кода с использованием транзацкий применительно к таблицам, которые их не поддерживают, MySQL будет считать, что транзакция была начата успешно. Так же, выполенение любого DDL запроса завершит все открытые транзакции а так же выполнит весь стек не завершенных запросов.
Установка
Обычно, установочные пакеты Unix имеют в своем составе бинарные пакеты PHP. Несмотря на то, что эти бинарные пакеты обычно собраны с поддержкой расширения MySQL, возможно понадобится устанавливать библиотеки расширений отдельно. Проверьте свой дистрибутив на наличие нужных библиотек через пакетный менеджер.
К примеру, на Ubuntu, установка пакета php5-mysql устанавливает расширения ext/mysql, ext/mysqli, и PDO_MYSQL. На CentOS, пакет php-mysql так же устанавливает эти три расширения.
Также вы всегда можете скомпилировать необходимые расширения самостоятельно. Сборка PHP из исходных кодов позволит вам собрать именно те расширения MySQL, которые вам нужны, а также выбрать нужную клиентскую библиотеку для каждого расширения.
Используйте —with-pdo-mysql[=DIR] для установки расширения PDO MySQL, где необязательный параметр [=DIR] указывает директорию, где установлена MySQL. Начиная с PHP 5.4, по умолчанию используется библиотека mysqlnd. Более детальный разбор по выбору библиотеки можно почитать в разделе «Выбор библиотеки MySQL».
Дополнительный параметр —with-mysql-sock[=DIR] указывает расположение unix-сокета MySQL для всех MySQL расширений, включая PDO_MYSQL. Если параметр не указан, поиск производится в директориях по умолчанию.
Дополнительный параметр —with-zlib-dir[=DIR] используется как префикс пути к libz.
$ ./configure --with-pdo-mysql --with-mysql-sock=/var/mysql/mysql.sock
Поддержка SSL включается, используя соответствующую константу PDO_MySQL, которая эквивалентна вызову » MySQL C API функции mysql_ssl_set(). К тому же SSL не может быть включен с помощью PDO::setAttribute, потому что соединение уже существует. Смотрите документацию MySQL о » подключении к MySQL с SSL.
Список изменений
Версия Описание 5.4.0 Библиотека mysqlnd выбирается по умолчанию, если вы собираете PHP с поддержкой PDO_MYSQL. Ранее библиотекой по умолчанию для MySQL была libmysqlclient. 5.4.0 Клиентские библиотеки MySQL версии 4.1 и ниже больше не поддерживаются. 5.3.9 Добавлена поддержка SSL в mysqlnd с OpenSSL. 5.3.7 Добавлена поддержка SSL в libmysqlclient с OpenSSL. Предопределенные константы
Перечисленные ниже константы определены данным драйвером и будут доступны только в случае, если PHP был собран с поддержкой этого расширения или данное расширение было подгружено динамически во время выполнения. Вдобавок, эти драйверо-зависимые константы должны быть использованы только совместно с этим драйвером. Использование атрибутов, специфичных для некоторого драйвера с другим драйвером может вызвать неожиданное поведение. Если ваш код выполняется с несколькими драйверами, то можно использовать функцию PDO::getAttribute() для получения атрибута PDO_ATTR_DRIVER_NAME для проверки драйвера.
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY ( integer ) Если этот атрибут установлен в TRUE в PDOStatement, MySQL драйвер будет использовать буферизованные версии MySQL API. Если вы пишете переносимый на другие библиотеки код, вы должны использовать PDOStatement::fetchAll() .
Пример #1 Буферизация запросов в MySQL
if ( $db -> getAttribute ( PDO :: ATTR_DRIVER_NAME ) == ‘mysql’ ) $stmt = $db -> prepare ( ‘select * from foo’ ,
array( PDO :: MYSQL_ATTR_USE_BUFFERED_QUERY => true ));
> else die( «my application only works with mysql; I should use \$stmt->fetchAll() instead» );
>
?>?phpPDO::MYSQL_ATTR_LOCAL_INFILE ( integer )
Включить LOAD LOCAL INFILE.
Обратите внимание, что эта константа может быть использована только в массиве driver_options при создании дескриптора новой базы данных.
PDO::MYSQL_ATTR_INIT_COMMAND ( integer )
Команда, которую необходимо выполнить при подключении к MySQL серверу. Также будет автоматически выполнена при переподключении.
Обратите внимание, что эта константа может быть использована только в массиве driver_options при создании дескриптора новой базы данных.
PDO::MYSQL_ATTR_READ_DEFAULT_FILE ( integer )
Чтение именованных параметров из файла my.cnf . Эта опция не доступна, если используется mysqlnd, потому что mysqlnd не читает файлы конфигурации MySQL.
PDO::MYSQL_ATTR_READ_DEFAULT_GROUP ( integer )
Чтение именованной группы параметров из файла my.cnf или из файла, определенного в константе MYSQL_READ_DEFAULT_FILE . Эта опция не доступна, если используется mysqlnd, потому что mysqlnd не читает файлы конфигурации MySQL.
PDO::MYSQL_ATTR_MAX_BUFFER_SIZE ( integer )
Максимальный размер буфера. По умолчанию равен 1 Мб. Эта константа не поддерживается при компиляции вместе с mysqlnd.
PDO::MYSQL_ATTR_DIRECT_QUERY ( integer )
Выполнять прямые запросы, не использовать подготовленные конструкции.
PDO::MYSQL_ATTR_FOUND_ROWS ( integer )
Возвращает количество найденных (совпавших) строк (не количество измененных строк).
PDO::MYSQL_ATTR_IGNORE_SPACE ( integer )
Разрешает пробелы после имен функций. Делает все имена функций зарезервированными словами.
PDO::MYSQL_ATTR_COMPRESS ( integer )
Включить сжатие сетевого соединения. Эта константа поддерживается при компиляции вместе с mysqlnd начиная c PHP 5.3.11.
PDO::MYSQL_ATTR_SSL_CA ( integer )
Путь к файлу сертификата SSL.
Существует, начиная с PHP 5.3.7.
PDO::MYSQL_ATTR_SSL_CAPATH ( integer )
Путь к директории, которая содержит SSL сертификаты доверенных центров (CA), хранящиеся в формате PEM.
Существует, начиная с PHP 5.3.7.
PDO::MYSQL_ATTR_SSL_CERT ( integer )
Путь к файлу с SSL сертификатом.
Существует, начиная с PHP 5.3.7.
PDO::MYSQL_ATTR_SSL_CIPHER ( integer )
Список из одного или более допустимых шифров для использования в SSL шифровании в формате, который понимает OpenSSL. Например: DHE-RSA-AES256-SHA:AES128-SHA
Существует, начиная с PHP 5.3.7.
PDO::MYSQL_ATTR_SSL_KEY ( integer )
Путь к файлу с ключом SSL.
Существует, начиная с PHP 5.3.7.
PDO::MYSQL_ATTR_MULTI_STATEMENTS ( integer )
Если установлено как FALSE , запрещает запуск множественных запросов как для PDO::prepare() , так и для PDO::query() .
Обратите внимание, что эта константа может ыбть использована только в массиве driver_options при создании нового дескриптора БД.
Существует, начиная с PHP 5.5.21 and PHP 5.6.5.
Настройка во время выполнения
Поведение этих функций зависит от установок в php.ini .
Опции конфигурации PDO_MYSQL
Имя По умолчанию Меняемо pdo_mysql.default_socket «/tmp/mysql.sock» PHP_INI_SYSTEM pdo_mysql.debug NULL PHP_INI_SYSTEM Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.
Краткое разъяснение конфигурационных директив.
Устанавливает сокет домена UNIX. Эту опцию необходимо указать во время компиляции, если сокет домена найден во время конфигурирования. Эта настройка только для Unix.
Разрешает отладку для PDO_MYSQL. Эта настройка доступна только, если PDO_MYSQL скомпилирован с «mysqlnd» и в режиме отладки PDO.
Форум
Здравствуйте форумчане.Использую php 5.6 но не могу использовать phpmyadmin,говорит что нужно использовать версию php от 7.1 Но использовать php выше не могу.Что в данном случае делать,в интернете ничего не нашел,может можно установить на open server mysql версию которая использует 5.6?
open server 5.3.7
Apache_2.4-PHP_5.5-5.6+nginx_1.17
PHP 5.6DAGpro Сообщения: 26 Зарегистрирован: 15 фев 2015, 02:09
Re: Не поддерживается MySql в php 5.6
Вам надо установить phpmyadmin 4 версии, в оспанел установлена версия 5, которая работает на php от 7.1