Hướng dẫn mysqli so undefined symbol mysqlnd_global_stats - mysqli nên biểu tượng không xác định mysqlnd_global_stats

Toàn bộ trang web của tôi chạy hoàn hảo thông qua trình duyệt. Tôi vừa thêm một công việc cron và mỗi lần chạy lỗi này được kích hoạt:

PHP Startup: Unable to load dynamic library 'mysqli' (tried: /usr/lib/php/20180731/mysqli (/usr/lib/php/20180731/mysqli: cannot open shared object file: No such file or directory), /usr/lib/php/20180731/mysqli.so (/usr/lib/php/20180731/mysqli.so: undefined symbol: mysqlnd_global_stats))

Không chắc chuyện gì đang diễn ra. Tôi đã đăng nhập phiên bản PHP cả bằng cách sử dụng trình duyệt và sử dụng Cron, và nó đã xuất hiện như nhau: 7.3.2-3+0 ~ 20190208150725.31+RECEP

Có gì khác nhau ở Cron? Làm thế nào tôi có thể sửa lỗi này?

Hướng dẫn mysqli so undefined symbol mysqlnd_global_stats - mysqli nên biểu tượng không xác định mysqlnd_global_stats

Mario

Phù vàng 143K20 Huy hiệu vàng236 Huy hiệu đồng20 gold badges236 silver badges286 bronze badges

Đã hỏi ngày 8 tháng 6 năm 2019 lúc 16:50Jun 8, 2019 at 16:50

Hãy thử thay đổi tệp

extension=mysqlnd
extension=mysqli
2 của bạn trong cả
extension=mysqlnd
extension=mysqli
3 để giống với điều này:

extension=mysqlnd
extension=mysqli

Đang tải

extension=mysqlnd
extension=mysqli
4 lần đầu tiên loại bỏ lỗi trên VM Debian của tôi. Nếu bạn có ý định chạy cùng một mã tại dòng lệnh, bạn cũng có thể xem xét thay đổi
extension=mysqlnd
extension=mysqli
5.

Đã trả lời ngày 28 tháng 11 năm 2020 lúc 6:07Nov 28, 2020 at 6:07

2

Tôi có 2 giải pháp.

Giải pháp một: Tôi nhận thấy rằng việc đóng kết nối MySQL ở cuối tập lệnh giải quyết vấn đề.

Giải pháp hai: Hóa ra, có một sự khác biệt giữa

extension=mysqlnd
extension=mysqli
6 và
extension=mysqlnd
extension=mysqli
7.

Cái đầu tiên có dòng này:

    extension=mysqli

Chiếc mũ thứ hai này (lưu ý dấu chấm phẩy):

;    extension=mysqli

Thêm dấu chấm phẩy vào

extension=mysqlnd
extension=mysqli
6 đã khắc phục hoàn toàn vấn đề của tôi.

Đã trả lời ngày 8 tháng 6 năm 2019 lúc 17:09Jun 8, 2019 at 17:09

BorissborissBoriss

4461 Huy hiệu vàng6 Huy hiệu bạc21 Huy hiệu đồng1 gold badge6 silver badges21 bronze badges

1

Nhận xét nó ra từ /etc/php/wastVersionTHER/cli/php.ini:/etc/php/[version]/cli/php.ini:

;extension=mysqli

Để lại nó như là trong /etc/php/wastVersionTHER/apache2/php.ini:/etc/php/[version]/apache2/php.ini:

extension=mysqli

Tải lại Apache2:

sudo systemctl restart apache2

Đã trả lời ngày 25 tháng 7 lúc 16:05Jul 25 at 16:05

Phiên bản PHP của tôi là 7.2

Khi tôi chạy

php -m

CẢNH BÁO PHP:

Php Startup: Không thể tải Thư viện động 'mysqli' (đã thử:/usr/lib/php/20170718/mysqli (/usr/lib/php/20170718/mysqli: không thể mở tệp đối tượng chia sẻ: không có tệp đó usr/lib/php/20170718/mysqli.so (/usr/lib/php/20170718/mysqli.so: Biểu tượng không xác định: mysqlnd_global_stats))

DUNG DỊCH

Tôi chỉ cần thêm dấu chấm phẩy vào

extension=mysqlnd
extension=mysqli
9 đã khắc phục hoàn toàn vấn đề của mình.

Meloman

3.3483 huy hiệu vàng40 Huy hiệu bạc46 Huy hiệu đồng3 gold badges40 silver badges46 bronze badges

Đã trả lời ngày 13 tháng 10 năm 2020 lúc 4:12Oct 13, 2020 at 4:12

0

Tôi đã cố gắng để có được PHP CLI (7.0.7 trên Ubuntu) làm việc cùng với MySQLI, nhưng không thành công. Tôi tiếp tục nhận được cùng một thông báo lỗi khi bắt đầu:

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

Đây là một số đầu ra từ PHP -I (hiển thị rõ ràng cả hai đều được tải):

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

PHP đã được cài đặt bằng

    extension=mysqli
0.

Chuyện gì thế?

hỏi ngày 17 tháng 6 năm 2016 lúc 14:55Jun 17, 2016 at 14:55

fgblomqvistfgblomqvistfgblomqvist

1511 huy hiệu vàng1 huy hiệu bạc5 huy hiệu đồng1 gold badge1 silver badge5 bronze badges

5

Khi bạn tải mysqli sau mysqlnd, điều này sẽ giải quyết vấn đề. NHƯNG

Nếu bạn sử dụng PHPENMOD để kích hoạt các mô -đun, chúng sẽ kích hoạt theo thứ tự bảng chữ cái. mysqli là trước mysqlnd theo thứ tự.

Tôi đã vượt qua điều này bằng cách đổi tên các Symlinks thành mysqli thành zmysqli - thô, nhưng nó đã hoạt động.

Đã trả lời ngày 12 tháng 12 năm 2017 lúc 11:54Dec 12, 2017 at 11:54

Hướng dẫn mysqli so undefined symbol mysqlnd_global_stats - mysqli nên biểu tượng không xác định mysqlnd_global_stats

Tôi đã trải qua nhiều tài liệu cài đặt cho PHP và người ta nói để bật Extension = mysqli trong php.ini (không biết) nhưng phpenmod đã được bật và do đó mysqli không nên ở php.ini tôi đã nhận xét dòng sản phẩm và mọi thứ được tải đúng.

Đã trả lời ngày 25 tháng 4 năm 2020 lúc 9:11Apr 25, 2020 at 9:11

Lý do vì bạn cần tải mysqlnd trước khi bạn tải tiện ích mở rộng mysql/php-mysqli/mysqli/php-mysqli.

Kiểm tra bạn php.ini xem PHP-MYSQLND đã được tải trước khi bạn tải các phần mở rộng đó. Đôi khi, Apache quyết định tách tất cả các tiện ích mở rộng thành các tệp .ini riêng biệt, bạn phải đảm bảo rằng tệp MySQLND được tải trước khi mở rộng PHP-MYSQLI và bạn bè bằng cách đổi tên tệp.

Đã trả lời ngày 3 tháng 4 năm 2017 lúc 5:35Apr 3, 2017 at 5:35

Trong tình huống của tôi (Debian 9), đơn đặt hàng là chính xác: tệp PHP-mysqlnd.ini đứng đầu danh sách các mô-đun. Để thay đổi thứ tự các mô-đun, chỉ cần thay đổi số kéo dài để bạn nên có các liên kết "10-mysqlnd.ini" và "20-mysqli.ini" trỏ đến các tệp .ini của họ trong mod-có sẵn. Điều tôi nhận thấy là tệp "mysqlnd.ini" trống, có thể là để cài đặt sai. Tôi chỉ cần thêm một số nội dung như "extiness = mysqlnd.so" (tệp thư viện đã được cài đặt chính xác) và mọi thứ đã hoạt động!

Đã trả lời ngày 2 tháng 4 năm 2020 lúc 6:22Apr 2, 2020 at 6:22

Tương tự, nếu không phải cùng một vấn đề:

extension=mysqlnd
extension=mysqli
0

Có thể được giải quyết bằng cách tải mô -đun

    extension=mysqli
1 (sự khác biệt duy nhất) sau mô -đun
extension=mysqlnd
extension=mysqli
4:

extension=mysqlnd
extension=mysqli
1

Đã trả lời ngày 27 tháng 8 năm 2021 lúc 14:09Aug 27, 2021 at 14:09

Mở rộng MySQLI đã được cài đặt chưa?

Kiểm tra xem MySQLI đã được cài đặt bước đầu tiên là kiểm tra xem tiện ích mở rộng MySQLI có được cài đặt không.Bạn có thể làm điều đó bằng cách truy cập trang phpinfo () mà bạn đã thực hiện hoặc bằng cách chạy lệnh này: PHP -M |grep mysqli.php -m | grep mysqli.

MySQLI có bị phản đối không?

Tiện ích mở rộng MySQLI bao gồm gì?Có ba cách khác nhau để truy cập cơ sở dữ liệu MySQL.Cái lâu đời nhất sử dụng tiện ích mở rộng MySQL, được dùng hết là Php 5.5 và loại bỏ hoàn toàn trong Php 7. Hàm mysql () không còn hoạt động trong PHP 7.deprecated as of PHP 5.5 and fully removed in PHP 7. The mysql() function no longer works in PHP 7.

Mysqli có phải là API không?

MySQLI là một phần mở rộng cho API MySQL có sẵn trong PHP và được giới thiệu từ PHP 5.0 trở đi.Nó còn được gọi là mở rộng MySQL cải tiến.Động lực đằng sau MySQLI là tận dụng các tính năng mới có sẵn trong MySQL 4.1. and is introduced from PHP 5.0 onwards. It is also known as MySQL improved extension. Motivation behind MySQLi was to take advantage of new features available in MySQL 4.1.