Hướng dẫn php not connecting to mysql ubuntu - php không kết nối với ubuntu mysql

Tôi đã đi đến kết luận rằng việc cài đặt PHP của tôi và cài đặt MySQL của tôi không được cùng với; Tôi đã làm việc để tạo trang web đầu tiên của mình sử dụng MySQL cho nội dung, nhưng sau hai ngày, trang người đàn ông, tài liệu trực tuyến và hàng chục hướng dẫn, tôi chỉ có thể nhận được phần PHP/MySQL hoạt động. Tôi có một máy chủ web gia đình được thiết lập (tôi là quản trị viên/người dùng duy nhất) chạy Apache và lưu trữ các trang web của tôi. Tôi đã cài đặt MySQL và có thể tạo và truy vấn cơ sở dữ liệu thông qua thiết bị đầu cuối. Tôi đã cài đặt PHP và có thể sử dụng Echo để in văn bản vào tài liệu. Tuy nhiên, khi tôi làm việc với MySQL, mọi thứ đều thay đổi…

Tôi có một trang chứa nội dung khởi tạo trong. Chứa một vài đoạn của HTML được mã hóa cứng và sau đó mã PHP để truy cập MySQL. Khi tôi lần đầu tiên tải trang, tất cả những gì kết quả là một trang trống. Tôi đã nhận xét phần PHP và tải lại để xác nhận rằng HTML đơn giản vẫn hoạt động, điều mà nó đã làm. Do đó, một số phần của PHP đã giữ bất kỳ trang nào không bao giờ tải.

Để bắt đầu khắc phục sự cố mã của mình, tôi đã để lại tất cả các mã PHP được nhận xét ngoại trừ mã sau cho kết nối máy chủ, được điều chỉnh từ một số hướng dẫn khác nhau:

PHP is working

"); $ses = mysql_connect("localhost","username","password"); if(!$ses){ echo("

Connection to content server failed.

"); exit(); } echo("

Database Connected

"); ?>

Khi trang được tải, HTML bắt đầu tải ngoài một đoạn văn đọc Php Php đang hoạt động nhưng không xuất hiện thông báo thất bại hay thành công. Tôi đã loại bỏ cấu trúc IF khỏi mã - để chỉ còn hai echos và mysql_connect - và có kết quả tương tự.

Có vẻ như tính năng mysql_connect đang khiến máy chủ ngừng tải mã khi nó được chạy, nhưng tôi đã ra khỏi ý tưởng về cách khắc phục nó. Đối với bản ghi: Tôi đã sửa đổi tệp php.ini để bao gồm dòng kết nối trên mạng = msql.so, và tôi đã sử dụng MySQL 5.5, Apache 2.2.22, Php 5.3.10, Ubuntu 12.04. Ngoài ra, cả bộ định tuyến và modem của tôi đã được cấu hình để chuyển tiếp cổng 3306 đến máy chủ - mặc dù tôi không thấy điều đó cần thiết như thế nào - và tên người dùng và mật khẩu MySQL của tôi đã được kiểm tra gấp ba và giống hệt với các tên mà tôi sử dụng thành công Trong thiết bị đầu cuối.

Tôi còn thiếu gì?

Xin chào -

Tôi rất bối rối.

Tôi có một máy chủ đèn Ubuntu 18.04 duy nhất. Cơ sở dữ liệu là localhost, tức là chạy trên cùng một máy chủ. Nó thay thế một máy chủ web Ubuntu 14 sản xuất hiện tại.

L = Ubuntu 18.04 A = Apache 2.4.43 M = MySQL 5.7,29 P = Php 5.6.40

Tôi có thể kết nối với MySQL-client với thông tin đăng nhập mà tôi đã thiết lập và lược đồ tôi đã nhập.

mysql -uroot -hlocalhost -p schema_name

Tuy nhiên, khi tôi cài đặt ứng dụng của mình (giống như ứng dụng được cài đặt trên máy chủ 14 hiện tại) lỗi của tôi.

Access denied for user 'root'@'localhost' 

Tôi đã kiểm tra và kiểm tra lại rằng ứng dụng của tôi đang nhận được đầu vào tương tự cho mật khẩu, v.v. mà tôi đã chuyển cho máy khách CLI.

Tôi đã tạo một tệp PHP mới từ Q & A này ở đây: https://www.digitalocean.com/community/questions/why-can-t-i-connect-to-a-remote-mysql-erver-from-a-php-ph -But-có thể kết nối-từ-mysql-client

Tệp của tôi có thể được tìm thấy ở đây: https://gist.github.com/tneigerux/499931aae84441d1ee8c667cedac8c70

Results:

Ubuntu 14:

There are 60 tables

Ubuntu 18

Unable to Connect to 'localhost'

Tôi không nghĩ rằng vấn đề này có liên quan đến Ubuntu 14 so với 18, nhưng đó là nơi tồn tại các ví dụ làm việc và không làm việc.

Thật không may, đây vẫn là một ứng dụng PHP5.6, vì vậy việc cài đặt phiên bản đèn cần thiết hơn cho Ubuntu 18. Tôi đã ghi lại những gói nào tôi đã cài đặt. Tôi tự hỏi nếu sự cố bị thiếu phần mềm? Không có ý nghĩa nhưng tôi có thể nghĩ về bất cứ điều gì khác.

Nhật ký apt-get:

sudo add-apt-repository ppa:ondrej/php
sudo add-apt-repository ppa:ondrej/apache2
sudo apt-get -y update
sudo apt-get -y install apache2
sudo apt-get -y install git
sudo apt-get -y install php5.6
sudo apt-get -y install php5.6-mbstring
sudo apt-get -y install libaio1
sudo apt-get -y install php5.6-mysql
sudo apachectl graceful

MySQL-Server 5.7,29 cũng đã được cài đặt, nhưng để có được một phiên bản tương thích, thông qua các gói Debian được tìm thấy ở đây: https://doads.mysql.com/archives/community/

Tôi đã triển khai ứng dụng này cho nhiều máy chủ và không bao giờ gặp vấn đề này. Cảm ơn trước cho bất kỳ ý tưởng nào.

Những câu trả lời này được cung cấp bởi cộng đồng của chúng tôi. Nếu bạn thấy chúng hữu ích, hãy thể hiện một số tình yêu bằng cách nhấp vào trái tim. Nếu bạn gặp vấn đề để lại nhận xét, hoặc thêm câu trả lời của riêng bạn để giúp đỡ người khác.

Tôi đã thiết lập một Raspberry Pi 4 với Ubuntu. Apache, PHP, MySQL và PHPMyAdmin được cài đặt và hoạt động tốt. Vì vậy, khi tôi đang cố gắng kết nối từ một mạng khác với thiết bị Windows của tôi qua MySQL Workbench, có một lỗi xảy ra.

lỗi

Đã kiểm tra: Chuyển tiếp cổng trên cổng 80 được mở. Đã kiểm tra IP ràng buộc trong mysqld.conf (có thể tôi đã phạm sai lầm ở đó) khi tôi cố gắng thay đổi cổng trong tệp cấu hình này thành 80 và khởi động lại "dịch vụ sudo mysql khởi động lại" lỗi này xảy ra "cho mysql.service không thành công vì quá trình điều khiển thoát với mã lỗi "

Vì vậy, có lẽ MySQL không nghe cổng 80. Tôi đã kiểm tra sudo lsof -i: 80. Chỉ tìm thấy hồ sơ từ Apache nghe cổng 80.

Tôi đang cố gắng trong ba ngày bây giờ để kết nối với cơ sở dữ liệu.

Cảm ơn bạn đã giúp đỡ các bạn!

hỏi ngày 9 tháng 2 năm 2021 lúc 21:34Feb 9, 2021 at 21:34

4

Theo mặc định, MySQL lắng nghe trên cổng 3306, vì vậy nếu bạn đang cố gắng kết nối trực tiếp với MySQL, đó có thể là vấn đề. Cổng 80 và 443 lần lượt là cho HTTP/HTTPS.

Bạn không thể đặt cổng thành cổng 80 vì Apache cần cổng đó để nghe các yêu cầu HTTP.

Hãy thử đặt cổng trở lại 3306 trên máy chủ MySQL và xem liệu điều đó có hoạt động không. Bạn cũng có thể cần phải mở cổng đó trên máy chủ.

Đã trả lời ngày 9 tháng 2 năm 2021 lúc 21:56Feb 9, 2021 at 21:56

Hướng dẫn php not connecting to mysql ubuntu - php không kết nối với ubuntu mysql

Eric Browneric BrownEric Brown

1.1162 Huy hiệu vàng13 Huy hiệu bạc28 Huy hiệu đồng2 gold badges13 silver badges28 bronze badges

3

Tại sao tôi không thể kết nối với MySQL trong PHP?

PHP có thể không thể kết nối với máy chủ MySQL nếu tên máy chủ không được nhận dạng. Đảm bảo rằng tên máy chủ được đặt thành localhost. Trong trường hợp các lỗi khác, hãy đảm bảo tham khảo tệp ERROR_LOG để giúp khi cố gắng giải quyết mọi vấn đề. Tệp được đặt trong cùng một thư mục nơi tập lệnh đang chạy.if the server name is not recognized. Make sure that the server name is set to localhost. In case of other errors, make sure to consult the error_log file to help when trying to solve any issues. The file is located in the same folder where the script is running.

Làm thế nào kết nối PHP với cơ sở dữ liệu MySQL trong Linux?

Kết nối với MySQL bằng PHP..
Kết nối với máy chủ MySQL của bạn bằng câu lệnh mysqli_connect.Ví dụ: $ con = mysqli_connect ('tên máy chủ', 'tên người dùng', 'mật khẩu');....
Chọn cơ sở dữ liệu mà bạn muốn truy cập bằng mysqli_select_db.Ví dụ: mysqli_select_db ('databasename', $ con).

Làm cách nào để kết nối mysql với PHP?

Cách kết nối PHP với cơ sở dữ liệu MySQL..
Sử dụng các tiện ích mở rộng để kết nối cơ sở dữ liệu MySQL trong PHP.PHP cung cấp ba tiện ích mở rộng mà bạn có thể sử dụng để: ....
Thêm câu lệnh SQL vào các chức năng PHP.Bằng cách sử dụng các tiện ích mở rộng MySQL trong tập lệnh PHP, bạn có thể thêm các câu lệnh SQL sau trong các hàm CRUD PHP để hoạt động với các bản ghi cơ sở dữ liệu MySQL:.

Tại sao máy chủ MySQL không kết nối?

Dưới đây là một số lý do khiến không thể kết nối với lỗi máy chủ MySQL cục bộ có thể xảy ra: MySQLD không chạy trên máy chủ cục bộ.Kiểm tra danh sách quy trình của hệ điều hành của bạn để đảm bảo quy trình MySQLD có mặt.Bạn đang chạy một máy chủ MySQL trên Windows với nhiều kết nối TCP/IP với nó.mysqld is not running on the local host. Check your operating system's process list to ensure the mysqld process is present. You're running a MySQL server on Windows with many TCP/IP connections to it.