Tôi đang cố gắng học PHP và tôi đang thiết lập kết nối cơ sở dữ liệu.
Trên Mysql Workbench, tôi đã tạo một cơ sở dữ liệu có tên là php và tạo một bảng.
Sau đó, tôi đã tạo tài khoản "sam"@"localhost",(Tôi đang sử dụng máy tính để bàn Ubuntu và sam
là đầu ra của tôi là ai
) với auth_socket, Đã cấp TẤT CẢ trên . , và khi tôi nhấn ctrl+alt+T
và đầu vào mysql
và hãy nhấn đi vào
, Tôi có thể đăng nhập thành công.
Bây giờ tôi đã theo dõi https://www.php.net/manual/en/mysqli.quickstart.connections.php và đã thử sử dụng ổ cắm, tôi đã thất bại.
13/08/2021 16:54:35 [lỗi] 1363#1363: *11 FastCGI được gửi trong thiết bị lỗi chuẩn: "Thông báo PHP: Cảnh báo PHP: mysqli::__construct(): (HY000/1698): Quyền truy cập bị từ chối đối với người dùng 'sam '@'localhost' trong /var/www/php/my2.php trên dòng 3 Thông báo PHP: PHP Cảnh báo: main(): Không thể tìm nạp mysqli trong /var/www/php/my2.php trên dòng 5" trong khi đọc tiêu đề phản hồi từ thượng nguồn, máy khách: 127.0.0.1, máy chủ: _, yêu cầu: "GET /my2.php HTTP/1.1", ngược dòng: "fastcgi://unix:/var/run/php/php7.4-fpm. sock:", máy chủ lưu trữ: "localhost:803"
Và đây là mã của tôi.
<?php
$mysqli = new mysqli("localhost", "sam", Null, "php");
tiếng vang $mysqli->host_info . "\N";
Đầu ra không có gì trong trình duyệt.
Sau đó, tôi đã thử điều này.
<html>
<head>
<title>Connecting MySQL Server</title>
</head>
<body>
<?php
$dbhost = 'localhost';
$dbuser = 'sam';
//$dbpass = 'root@123';
$mysqli = new mysqli($dbhost, $dbuser,NULL,NULL,NULL,"/run/mysqld/mysqld.sock");
if($mysqli->connect_errno ) {
printf("Connect failed: %s<br />", $mysqli->connect_error);
exit();
}
printf('Connected successfully.<br />');
$mysqli->close();
?>
</body>
</html>
đầu ra là Kết nối không thành công: Truy cập bị từ chối đối với người dùng 'sam'@'localhost'
Với nhật ký
13/08/2021 16:59:17 [lỗi] 1363#1363: *13 FastCGI được gửi trong thiết bị lỗi chuẩn: "Thông báo PHP: Cảnh báo PHP: mysqli::__construct(): (HY000/1698): Quyền truy cập bị từ chối đối với người dùng 'sam '@'localhost' trong /var/www/php/mysqli.php trên dòng 10" trong khi đọc tiêu đề phản hồi từ thượng nguồn, máy khách: 127.0.0.1, máy chủ: _, yêu cầu: "NHẬN /mysqli.php HTTP/1.1", ngược dòng: "fastcgi://unix:/var/run/php/php7.4-fpm.sock:", máy chủ lưu trữ: "localhost:803"
Tôi không có mật khẩu cho người dùng sam
trên mysql.
MariaDB [mysql]> chọn người dùng, mật khẩu từ người dùng;
+------------+---------------------------------- ------+
| người dùng | mật khẩu |
+------------+---------------------------------- ------+
| gốc | |
| ai đó | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| ai đó | *9B8A3238012965AC630589D859535EA0B7C231A7 |
| ai đó | *AF411B6C73B3AC3A2316A309A71758175CC14FEE |
| ai đó | *D76A454D84260E84578F09915624F275F3D0E08B |
| sam | |
+------------+---------------------------------- ------+
6 hàng trong bộ (0,001 giây)
Tôi đã thay đổi tên người dùng thực tế thành ai đó để bảo vệ quyền riêng tư. Bạn có thể thấy rằng sam
không có mật khẩu.