Lỗi: Không thể tìm thấy kết quả phù hợp: php-mysql

Phần này nói thêm về việc tìm các gói PHP có sẵn cho CentOS và điều đó sẽ phụ thuộc vào phiên bản cụ thể của CentOS mà bạn đang sử dụng (không chỉ là bản phát hành chính). Bạn cũng có thể thực hiện "yumcung cấp" để tìm gói nào cung cấp một tệp nhất định. Bạn có thể thấy rằng phiên bản CentOS của bạn đã chuyển từ MySQL sang mariadb (không chắc liệu CentOS có thực hiện bước nhảy vọt đó hay không nhưng tôi biết ubuntu đã làm được)

Tôi đã thử sử dụng Centos 8 Playground tại đây trên KodeKloud để theo dõi Demo nhưng tôi gặp khó khăn khi cài đặt httpd và php bằng lệnh

$ sudo yum cài đặt -y httpd php php-mysql

Nó không hoạt động trên sân chơi và đưa ra lỗi sau

[email được bảo vệ] ~ ➜ Sudo yum install -y httpd php php-mysql
Kiểm tra lần cuối siêu dữ liệu hết hạn. 0. 10. 08 trước ngày Thứ năm 18 tháng 8 01. 32. 28 2022.
Không phù hợp để tranh luận. php-mysql
Lỗi. Không thể tìm thấy một trận đấu. php-mysql

Vì vậy, tôi đã cố gắng cài đặt riêng từng dịch vụ, trước tiên là httpd, sau đó là php nhưng vẫn gặp lỗi tương tự đối với php-mysql như bên dưới;

Vấn đề Triệu chứng

Tôi đang cố cài đặt MySQL trên máy chủ CentOS mới bằng lệnh sau

wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
sudo yum localinstall mysql57-community-release-el7-8.noarch.rpm
sudo yum install mysql-community-server

Thông báo lỗi chi tiết như bên dưới

Lỗi: Không thể tìm thấy kết quả phù hợp: php-mysql
Lỗi: Không thể tìm thấy kết quả phù hợp: php-mysql
giải quyết. Cách khắc phục lỗi “Unable to find a match” khi cài đặt MySQL trên CentOS

All matches were filtered out by modular filtering for argument: mysql-community-server
Error: Unable to find a match: mysql-community-server

hoặc

No match for argument: mysql-community-server
Error: Unable to find a match: mysql-community-server

Tôi đã cập nhật yum và chạy lại lệnh trên nhưng nhận được kết quả tương tự

Thực hiện theo các bước giải pháp bên dưới để giải quyết lỗi “Không thể tìm thấy kết quả phù hợp” khi cài đặt MySQL trên CentOS

Dung dịch

Thực hiện lệnh sau

yum module disable mysql
yum install mysql-community-server

Trong trường hợp bạn gặp lỗi kiểm tra giao dịch như bên dưới

The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'yum clean packages'.
Error: Transaction test error:
  file /etc/my.cnf from install of mysql-community-server-5.7.35-1.el7.x86_64 conflicts with file from package mariadb-connector-c-config-3.1.11-2.el8_3.noarch

Bạn có thể giải quyết lỗi kiểm tra giao dịch bằng lệnh bên dưới để cài đặt MySQL

yum install mysql

Tôi đang cố gắng sử dụng kết nối PHP để kết nối Cơ sở dữ liệu MySQL trên phpmyadmin. Không có gì lạ mắt về kết nối chỉ cố gắng xem liệu kết nối có thành công hay không. Tôi đang sử dụng MAMP để lưu trữ cơ sở dữ liệu, kết nối mà tôi đang cố sử dụng là kết nối này

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully"; 
}
catch(PDOException $e)
{
    echo "Connection failed: " . $e->getMessage();
}
?>

Tôi đã sử dụng postman để kiểm tra xem kết nối có hoạt động không, nhưng tôi vẫn nhận được thông báo lỗi này

Kết nối thất bại. SQLSTATE[HY000] [2002] Kết nối bị từ chối

Trước khi tôi nhận được thông báo lỗi của

Kết nối thất bại. SQLSTATE[HY000] [2002] Không có tệp hoặc thư mục như vậy

Điều này là do tôi đã đặt tên máy chủ thành localhost, thông qua việc thay đổi tên này thành địa chỉ IP, nó đã khiến tôi bị từ chối kết nối và tôi không biết có vấn đề gì

Khi PHP nói về "_______8 bất ngờ", điều đó có nghĩa là mã của bạn đã kết thúc trong khi trình phân tích cú pháp đang mong đợi nhiều mã hơn. (Thông điệp hơi sai lệch khi hiểu theo nghĩa đen. Nó không phải là về một biến có tên là "$end", như đôi khi được những người mới đến giả định. Nó đề cập đến "phần cuối của tệp", EOF. )

Nguyên nhân. Không cân bằng {

All matches were filtered out by modular filtering for argument: mysql-community-server
Error: Unable to find a match: mysql-community-server
0 cho các khối mã/và khai báo hàm hoặc lớp

Hầu như luôn luôn có một dấu ngoặc nhọn

All matches were filtered out by modular filtering for argument: mysql-community-server
Error: Unable to find a match: mysql-community-server
0 bị thiếu để đóng các khối mã trước đó. Điều nó nói là trình phân tích cú pháp đang mong đợi tìm thấy một kết thúc của
All matches were filtered out by modular filtering for argument: mysql-community-server
Error: Unable to find a match: mysql-community-server
0 nhưng thực sự đã đến cuối tệp

  • Một lần nữa, sử dụng thụt đầu dòng thích hợp để tránh những vấn đề như vậy

  • Sử dụng một IDE có đối sánh dấu ngoặc để tìm ra vị trí của

    All matches were filtered out by modular filtering for argument: mysql-community-server
    Error: Unable to find a match: mysql-community-server
    0. Có phím tắt trong hầu hết các IDE và trình soạn thảo văn bản

    • NetBeans, PhpStorm, Komodo. Ctrl[ và Ctrl]
    • Nhật thực, Aptana. CtrlShiftP
    • nguyên tử, siêu phàm. Ctrlm - Zend Studio CtrlM
    • Geany, Sổ tay ++. CtrlB - Joe. CtrlG - Emacs. C-M-n - Vim. %

Hầu hết các IDE cũng làm nổi bật dấu ngoặc nhọn, dấu ngoặc đơn và dấu ngoặc đơn phù hợp. Điều này làm cho việc kiểm tra mối tương quan của chúng khá dễ dàng

Lỗi: Không thể tìm thấy kết quả phù hợp: php-mysql

Biểu thức chưa kết thúc

Lỗi cú pháp/trình phân tích cú pháp

All matches were filtered out by modular filtering for argument: mysql-community-server
Error: Unable to find a match: mysql-community-server
4 cũng có thể xảy ra đối với các biểu thức hoặc câu lệnh chưa kết thúc

Vì vậy, trước tiên hãy xem phần cuối của tập lệnh. Dấu

All matches were filtered out by modular filtering for argument: mysql-community-server
Error: Unable to find a match: mysql-community-server
5 thường dư thừa cho câu lệnh cuối cùng trong bất kỳ tập lệnh PHP nào. Nhưng bạn nên có một. Chính vì nó thu hẹp các vấn đề về cú pháp như vậy. Đặc biệt là sau khi bạn thấy mình thêm nhiều câu lệnh vào cuối tập lệnh

Dấu HEREDOC thụt vào

Một sự cố phổ biến khác xuất hiện với các chuỗi. Điểm đánh dấu kết thúc bị bỏ qua với khoảng trắng, tab, v.v.

print <<< END
    Content...
    Content....
  END;
# ↑ terminator isn't exactly at the line start

Do đó, trình phân tích cú pháp giả sử chuỗi HEREDOC tiếp tục cho đến hết tệp (do đó "Unexpected $end"). Khá nhiều IDE và trình soạn thảo đánh dấu cú pháp sẽ làm cho điều này trở nên rõ ràng hoặc cảnh báo về nó

Dấu ngoặc kép thoát

Nếu bạn sử dụng

All matches were filtered out by modular filtering for argument: mysql-community-server
Error: Unable to find a match: mysql-community-server
6 trong một chuỗi, nó có ý nghĩa đặc biệt. Đây được gọi là "Ký tự thoát" và thường yêu cầu trình phân tích cú pháp lấy ký tự tiếp theo theo nghĩa đen

Ví dụ. $end0 sẽ in ra $end1

Nếu bạn thoát khỏi dấu ngoặc kép của một chuỗi, dấu ngoặc kép sẽ được hiểu theo nghĩa đen và không như dự định, tôi. e. dưới dạng trích dẫn có thể in được như một phần của chuỗi và không đóng chuỗi. Điều này thường hiển thị dưới dạng lỗi phân tích cú pháp sau khi bạn mở chuỗi tiếp theo hoặc ở cuối tập lệnh

Lỗi rất phổ biến khi chỉ định đường dẫn trong Windows. $end2 là sai. Bạn cần $end3. Ngoài ra, PHP thường sẽ chuyển đổi các đường dẫn kiểu Unix (e. g. $end4) đến đúng đường dẫn cho Windows

cú pháp thay thế

Hiếm hơn một chút, bạn có thể thấy lỗi cú pháp này khi sử dụng cú pháp thay thế cho các khối câu lệnh/mã trong các mẫu. Ví dụ: sử dụng $end5 và $end6 và thiếu $end7

Làm cách nào để cài đặt PHP MySQL trong CentOS 8?

Bước 1. Cập nhật gói phần mềm hệ thống
Bước 2. Cài đặt Apache
Bước 3. Cài đặt MySQL
Bước 4. Định cấu hình Bảo mật MySQL
Bước 5. Cài đặt PHP và các Module hỗ trợ
Bước 6. Điều chỉnh tường lửa
Bước 7. Kiểm tra PHP với Apache

Làm cách nào để cài đặt phần mở rộng PHP MySQL CentOS 7?

Bước 1. Cập nhật bộ nhớ cache của kho lưu trữ gói
Bước 2. Cài đặt máy chủ web Apache
Bước 3. Cài đặt MySQL (MariaDB) và tạo cơ sở dữ liệu
Bước 4. Chạy tập lệnh bảo mật MySQL
Bước 5. Cài đặt PHP
Bước 6. Kiểm tra xử lý PHP
Bước 7. Cài đặt các mô-đun PHP
Bước 8. Khởi động lại Apache