Maison > Article > base de données > Pourquoi ne puis-je pas accéder à ma base de données MySQL en tant qu'utilisateur root dans Ubuntu ?
Rencontres avec le "SQLSTATE[HY000] [1698] Accès refusé pour l'utilisateur ' L'erreur root'@'localhost'" après la configuration d'un serveur Web Ubuntu peut être frustrante. Bien que l'accès à la base de données puisse sembler accessible via le terminal, des erreurs dans PHP et phpMyAdmin persistent. Comprendre la cause sous-jacente est crucial pour résoudre ce problème.
Restrictions de l'utilisateur root
MySQL 5.7 introduit des restrictions sur l'utilisateur root. Sans privilèges élevés, l'accès direct à MySQL à l'aide de mysql -u root n'est plus possible. Au lieu de cela, sudo mysql -u root est requis, ce qui demande la saisie d'un mot de passe.
Cette restriction s'étend aux applications GUI et sans ligne de commande. Pour atténuer ce problème, créez un nouvel utilisateur avec les privilèges nécessaires au lieu d'utiliser l'utilisateur root.
Implémentation en PHP
Dans le code PHP fourni, les informations de connexion sont codé en dur. Pour contourner les restrictions de l'utilisateur root, modifiez la méthode __construct() pour incorporer un nouvel utilisateur avec les autorisations appropriées :
<code class="php">public function __construct() { try { $this->conn = new PDO("mysql:host=$this->host;dbname=$this->db", $this->name, $this->pass, self::$settings); } catch (PDOException $e) { echo $e->getMessage(); } }</code>
Remplacez $this->name et $this->pass par les informations d'identification de l'utilisateur nouvellement créé. . Assurez-vous que l'utilisateur possède les privilèges nécessaires pour accéder à la base de données.
Ressources supplémentaires
Pour plus d'informations et les étapes de dépannage, reportez-vous à la ressource suivante :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!