PHP “mysqli.so: símbolo indefinido: mysqlnd_connect em Unknown na linha 0”

2

Eu tenho tentado obter o PHP CLI (7.0.7 no Ubuntu) trabalhando junto com o mysqli, mas sem sucesso. Eu continuo recebendo a mesma mensagem de erro ao iniciá-lo:

mysqli.so: undefined symbol: mysqlnd_connect in Unknown on line 0

Esta é uma das saídas do php -i (mostrando claramente que ambas foram carregadas):

mysqli

MysqlI Support => enabled
Client API library version => mysqlnd 5.0.12-dev - 20150407 - $Id: 241ae00989d1995ffcbbf63d579943635faf9972 $
Active Persistent Links => 0
Inactive Persistent Links => 0
Active Links => 0

Directive => Local Value => Master Value
mysqli.allow_local_infile => On => On
mysqli.allow_persistent => On => On
mysqli.default_host => no value => no value
mysqli.default_port => 3306 => 3306
mysqli.default_pw => no value => no value
mysqli.default_socket => no value => no value
mysqli.default_user => no value => no value
mysqli.max_links => Unlimited => Unlimited
mysqli.max_persistent => Unlimited => Unlimited
mysqli.reconnect => Off => Off
mysqli.rollback_on_cached_plink => Off => Off

mysqlnd

mysqlnd => enabled
Version => mysqlnd 5.0.12-dev - 20150407 - $Id: 241ae00989d1995ffcbbf63d579943635faf9972 $
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

O PHP foi instalado usando sudo apt install php7.0-cli .

O que está errado?

    
por fgblomqvist 17.06.2016 / 16:55

2 respostas

1

Quando você carrega o mysqli após o mysqlnd, isso resolve o problema. MAS

se você usar o phpenmod para ativar os módulos que eles ativam em ordem alfabética. o mysqli é antes do mysqlnd na ordem.

Eu superei isso renomeando os links simbólicos para mysqli para zmysqli - bruto, mas funcionou.

    
por 12.12.2017 / 12:54
0

O motivo porque você precisa carregar o mysqlnd antes de carregar a extensão mysql / php-mysqli / mysqli / php-mysqli.

Verifique se o php.ini se o php-mysqlnd foi carregado antes de você carregar essas extensões. Às vezes, o apache decidiu separar todas as extensões em arquivos .ini separados, você tem que ter certeza que o arquivo mysqlnd é carregado antes da extensão php-mysqli e amigo, renomeando o arquivo.

    
por 03.04.2017 / 07:35

Tags