Ubuntu에서 루트 사용자로 MySQL 데이터베이스에 액세스할 수 없는 이유는 무엇입니까?

Patricia Arquette
풀어 주다: 2024-10-30 00:10:28
원래의
327명이 탐색했습니다.

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

SQLSTATE[HY000] [1698] 로컬 호스트의 '루트' 사용자에 대한 액세스가 거부되었습니다.

"SQLSTATE[HY000] [1698] 사용자 '에 대한 액세스가 거부되었습니다. Ubuntu 웹 서버를 설정한 후 root'@'localhost'" 오류가 발생하면 실망스러울 수 있습니다. 데이터베이스 액세스는 터미널을 통해 액세스 가능한 것처럼 보이지만 PHP 및 phpMyAdmin의 오류는 계속 발생합니다. 이 문제를 해결하려면 근본 원인을 이해하는 것이 중요합니다.

루트 사용자 제한

MySQL 5.7 이상에서는 루트 사용자에 대한 제한이 도입되었습니다. 상승된 권한이 없으면 mysql -u root를 사용하여 MySQL에 직접 액세스할 수 없습니다. 대신 sudo mysql -u root가 필요하며 비밀번호 입력을 요구합니다.

이 제한은 GUI 및 명령줄이 아닌 애플리케이션까지 확장됩니다. 이 문제를 완화하려면 루트 사용자를 사용하는 대신 필요한 권한이 있는 새 사용자를 생성하십시오.

PHP에서 구현

제공된 PHP 코드에서 로그인 자격 증명은 하드코딩. 루트 사용자 제한을 우회하려면 __construct() 메소드를 수정하여 적절한 권한이 있는 새 사용자를 통합하십시오.

<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>
로그인 후 복사

$this->name 및 $this->pass를 새로 생성된 사용자의 자격 증명으로 바꿉니다. . 사용자가 데이터베이스에 액세스하는 데 필요한 권한을 가지고 있는지 확인하세요.

추가 리소스

추가 정보 및 문제 해결 단계는 다음 리소스를 참조하세요.

  • [MySQL 오류 코드 1698: 사용자 'root'@'localhost'에 대한 액세스가 거부되었습니다.](https://www.cybertec-postgresql.com/en/mysql-error-1698-access-denied-for- 사용자-루트로컬호스트/)

위 내용은 Ubuntu에서 루트 사용자로 MySQL 데이터베이스에 액세스할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!