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 ?

Pourquoi ne puis-je pas accéder à ma base de données MySQL en tant qu'utilisateur root dans Ubuntu ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-30 00:10:28330parcourir

Why Can't I Access My MySQL Database as Root User in Ubuntu?

SQLSTATE[HY000] [1698] Accès refusé pour l'utilisateur 'root' sur l'hôte local

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 :

  • [Code d'erreur MySQL 1698 : accès refusé pour l'utilisateur 'root'@'localhost'](https://www.cybertec-postgresql.com/en/mysql-error-1698-access-denied-for- utilisateur-rootlocalhost/)

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn