Acceso a Mysqli denegado, usando socket UNIX

Acceso a Mysqli denegado, usando socket UNIX

Estoy intentando aprender PHP y estoy configurando la conexión de la base de datos.
En Mysql Workbench, creé una base de datos llamada php y creé una tabla. Luego creé la cuenta "sam"@"localhost", (estoy usando el escritorio de Ubuntu y sames el resultado de whoami) con auth_socket, concedido TODO en., y cuando presiono ctrl+alt+Te ingreso mysqly presiono enter, puedo iniciar sesión exitosamente.
Ahora lo seguíhttps://www.php.net/manual/en/mysqli.quickstart.connections.php, e intenté usar socket, fallé.

2021/08/13 16:54:35 [error] 1363#1363: *11 FastCGI sent in stderr: "PHP message: PHP Warning:  mysqli::__construct(): (HY000/1698): Access denied for user 'sam'@'localhost' in /var/www/php/my2.php on line 3PHP message: PHP Warning:  main(): Couldn't fetch mysqli in /var/www/php/my2.php on line 5" while reading response header from upstream, client: 127.0.0.1, server: _, request: "GET /my2.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php7.4-fpm.sock:", host: "localhost:803"

Y aquí está mi código. <?php

$mysqli = new mysqli("localhost", "sam", Null, "php");

echo $mysqli->host_info . "\n";

El resultado no es nada en un navegador.

Entonces probé esto.

<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>

La salida es Connect failed: Access denied for user 'sam'@'localhost'
con registro.

2021/08/13 16:59:17 [error] 1363#1363: *13 FastCGI sent in stderr: "PHP message: PHP Warning:  mysqli::__construct(): (HY000/1698): Access denied for user 'sam'@'localhost' in /var/www/php/mysqli.php on line 10" while reading response header from upstream, client: 127.0.0.1, server: _, request: "GET /mysqli.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php7.4-fpm.sock:", host: "localhost:803"

No tengo contraseña de usuario samen mysql.

MariaDB [mysql]> select user,password from user;
+-----------+-------------------------------------------+
| user      | password                                  |
+-----------+-------------------------------------------+
| root      |                                           |
| someone   | *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| someone   | *9B8A3238012965AC630589D859535EA0B7C231A7 |
| someone   | *AF411B6C73B3AC3A2316A309A71758175CC14FEE |
| someone   | *D76A454D84260E84578F09915624F275F3D0E08B |
| sam       |                                           |
+-----------+-------------------------------------------+
6 rows in set (0.001 sec)

Cambié el nombre de usuario real a alguien para proteger la privacidad. Puedes ver que samno tiene contraseña.

Respuesta1

Utilice su Mysql Workbench para establecer una contraseña para el usuario samy utilice esa contraseña para conectarse con la biblioteca mysqli. No sé si Mysql Workbench tiene una opción de clic para hacerlo, si no o si prefieres la forma SQL, usa algo como:

CREATE USER 'sam'@'localhost' IDENTIFIED BY 'choose_a_safe_password'

información relacionada