ฉันกำลังพยายามเรียนรู้ PHP และฉันกำลังตั้งค่าการเชื่อมต่อฐานข้อมูล
บน Mysql Workbench ฉันสร้างฐานข้อมูลชื่อ php และสร้างตาราง
จากนั้นฉันสร้างบัญชี "sam"@"localhost" (ฉันใช้เดสก์ท็อป Ubuntu และ แซม
เป็นผลลัพธ์ของ ฉันเป็นใคร
) ด้วย auth_socket อนุญาตทั้งหมด . และเมื่อฉันกด ctrl+alt+T
และการป้อนข้อมูล มายเอสคิวแอล
และกด เข้าสู่
ฉันสามารถเข้าสู่ระบบได้สำเร็จ
ตอนนี้ฉันทำตาม https://www.php.net/manual/th/mysqli.quickstart.connections.php และลองใช้ซ็อกเก็ต ฉันล้มเหลว
2021/08/13 16:54:35 [ข้อผิดพลาด] 1363#1363: *11 FastCGI ส่งใน stderr: "ข้อความ PHP: คำเตือน PHP: mysqli::__construct(): (HY000/1698): การเข้าถึงถูกปฏิเสธสำหรับผู้ใช้ 'sam '@'localhost' ใน /var/www/php/my2.php ออนไลน์ ข้อความ 3PHP: คำเตือน PHP: main(): ไม่สามารถดึง mysqli ใน /var/www/php/my2.php ออนไลน์ 5" ขณะอ่าน ส่วนหัวการตอบสนองจากอัปสตรีม ไคลเอ็นต์: 127.0.0.1 เซิร์ฟเวอร์: _ คำขอ: "GET /my2.php HTTP/1.1" อัปสตรีม: "fastcgi://unix:/var/run/php/php7.4-fpm. ถุงเท้า:", โฮสต์: "localhost:803"
และนี่คือรหัสของฉัน
<?php
$mysqli = new mysqli("localhost", "sam", Null, "php");
echo $mysqli->host_info "\n";
ผลลัพธ์ไม่มีอะไรในเบราว์เซอร์
จากนั้นฉันก็ลองทำสิ่งนี้
<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>
ผลลัพธ์คือ การเชื่อมต่อล้มเหลว: การเข้าถึงถูกปฏิเสธสำหรับผู้ใช้ 'sam'@'localhost'
พร้อมบันทึก
2021/08/13 16:59:17 [ข้อผิดพลาด] 1363#1363: *13 FastCGI ส่งใน stderr: "ข้อความ PHP: คำเตือน PHP: mysqli::__construct(): (HY000/1698): การเข้าถึงถูกปฏิเสธสำหรับผู้ใช้ 'sam '@'localhost' ใน /var/www/php/mysqli.php ที่บรรทัด 10" ขณะอ่านส่วนหัวการตอบสนองจากอัปสตรีม ไคลเอนต์: 127.0.0.1 เซิร์ฟเวอร์: _ คำขอ: "GET /mysqli.php HTTP/1.1" ต้นน้ำ: "fastcgi://unix:/var/run/php/php7.4-fpm.sock:", โฮสต์: "localhost:803"
ฉันไม่มีรหัสผ่านสำหรับผู้ใช้ แซม
บน mysql
MariaDB [mysql]> เลือกผู้ใช้, รหัสผ่านจากผู้ใช้;
+------------+-------------------------------------- ------+
| ผู้ใช้ | รหัสผ่าน |
+------------+-------------------------------------- ------+
| ราก | |
| ใครบางคน | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| ใครบางคน | *9B8A3238012965AC630589D859535EA0B7C231A7 |
| ใครบางคน | *AF411B6C73B3AC3A2316A309A71758175CC14FEE |
| ใครบางคน | *D76A454D84260E84578F09915624F275F3D0E08B |
| แซม | |
+------------+-------------------------------------- ------+
6 แถวในชุด (0.001 วินาที)
ฉันเปลี่ยนชื่อผู้ใช้จริงเป็นชื่อคนอื่นเพื่อปกป้องความเป็นส่วนตัว คุณสามารถเห็นได้ว่า แซม
ไม่มีรหัสผ่าน