XAMPP에서 phpMyAdmin으로“구성에 정의 된 controluser 연결에 실패했습니다”


127

Windows XP 컴퓨터에 XAMPP를 설치했는데 다음과 같은 오류가 발생합니다.

구성에 정의 된 제어 사용자 연결에 실패했습니다.

XAMPP를 설치하기 전에 MySQL 데이터베이스가 설치되었고 암호가있었습니다. MySQL의 경우 config.inc.php에서 암호를 변경하고 입력 했는데이 오류가 발생했습니다.

<?php
if (!empty($_SERVER['HTTPS']) && ('on' == $_SERVER['HTTPS'])) {
    $uri = 'https://';
} else {
    $uri = 'http://';
}
$uri .= $_SERVER['HTTP_HOST'];
header('Location: '.$uri.'/xampp/');
exit;
?>

index.php에 액세스하려고하면 XAMPP 설치에 문제가있는 것 같습니다. 이 문제를 해결하려면 어떻게해야합니까?


19
IMHO 이런 종류의 질문은 매우 일반적이며 문제를 해결하는 데 많은 시간이 낭비됩니다. 또한 "문제의 정의 된 범위"에 의해 "프로그래머가 일반적으로 사용하는 소프트 툴"또는 " 소프트 개발에 고유 한 실용적이고 대답하기 쉬운 문제입니다. "따라서 저는 SO 참전 용사에게"주제를 벗어난 "것으로 표시하기 전에 그러한 게시물을 신중하게 고려하도록 요청합니다. SO는 직면하고 해결 한 사람들로부터 프로그래밍 문제에 대한 답을 얻을 수있는 신뢰할 수있는 원 스톱 목적지가되었습니다. 따라서 프로그래머가 그러한 문제를 다른 곳에서 검색하는 것보다 정확한 답변을 얻는 것이 도움이 될 것입니다.
Dexter

답변:


243
  1. 브라우저에서 phpMyAdmin을 열고 루트로 로그인하십시오.
  2. 라는 데이터베이스를 만듭니다 phpmyadmin
  3. 호출 된 사용자를 작성 pma하고 "호스트"를 웹 서버의 호스트 이름 또는 IP 주소 (웹 서버와 MySQL이 동일한 상자에있는 경우 localhost)로 설정하고 비밀번호를 기록한 후 새 사용자에게 모든 권한을 부여하십시오. phpmyadmin데이터베이스. 이 사용자는이 데이터베이스 이외의 다른 것에 액세스하지 않는 것이 좋습니다.
  4. phpMyAdmin 설치 디렉토리로 이동하십시오 (여기서)라는 서브 디렉토리를 찾으십시오 sql.
  5. 에서 sql당신라는 파일을 찾을 수 있습니다 create_tables.sql. 텍스트 편집기에서 엽니 다.
  6. phpMyAdmin에서 phpmyadmin데이터베이스를 선택 하고 "SQL"탭을 클릭하십시오.
  7. 전체 텍스트를 create_tables.sql텍스트 상자에 복사 / 붙여 넣기 하고 쿼리를 실행하십시오.
  8. config.inc.phpphpMyAdmin 설치 디렉토리에서 파일을 열고 다음 행을 추가하십시오 (또는 기존 설정이 이미있는 경우 변경하십시오).

    $cfg['Servers'][1]['pmadb'] = 'phpmyadmin';
    $cfg['Servers'][1]['controluser'] = 'pma';
    $cfg['Servers'][1]['controlpass'] = '<your password>';
    
    // Note: The list below may grow as PMA evolves and more control tables are added
    // Use your common sense! Don't just blindly copypasta, look at what it means!
    $cfg['Servers'][1]['bookmarktable'] = 'pma_bookmark';
    $cfg['Servers'][1]['relation'] = 'pma_relation';
    $cfg['Servers'][1]['userconfig'] = 'pma_userconfig';
    $cfg['Servers'][1]['table_info'] = 'pma_table_info';
    $cfg['Servers'][1]['column_info'] = 'pma_column_info';
    $cfg['Servers'][1]['history'] = 'pma_history';
    $cfg['Servers'][1]['recent'] = 'pma_recent';
    $cfg['Servers'][1]['table_uiprefs'] = 'pma_table_uiprefs';
    $cfg['Servers'][1]['tracking'] = 'pma_tracking';
    $cfg['Servers'][1]['table_coords'] = 'pma_table_coords';
    $cfg['Servers'][1]['pdf_pages'] = 'pma_pdf_pages';
    $cfg['Servers'][1]['designer_coords'] = 'pma_designer_coords';
  9. 파일을 저장하고 닫습니다.

중요 -PMA는 로그인시 구성을로드하고 평가하여 세션 데이터에 저장하므로 다음과 같이 할 때까지 메시지가 사라지지 않습니다.

  1. phpMyAdmin에서 로그 아웃 한 후 다시 로그인하십시오.

문제 해결됨.


3
"로그 아웃 한 후 다시 로그인"하려면 +1하십시오. 나는 그렇게해야한다는 것을 깨닫지 못하고 5 분을 낭비했다.
Matthew G

1
@MatthewG 예 디스크 I / O를 줄이기 위해 로그인 할 때 구성 파일이 세션에로드되므로 ^^ PMA 구성 파일의 변경 사항에 적용됩니다.
DaveRandom

14
어떤 이유로, 내 phpmyadmin 버전의 테이블 이름은 "pma__bookmark"등으로 2 개의 "밑줄"로 표시됩니다. 누구든지 같은 것을 가지고 있다면 "config.inc.php"를 적절히 편집해야합니다. 그리고 BTW 설정 파일은 우분투의 "/ etc / phpmyadmin"디렉토리에 있습니다
ajaybc

6
우분투 14.04에 create_tables.sql의 위치는 내부 /usr/share/doc/phpmyadmin/examples/create_tables.sql.gz입니다
karlingen

5
이것은 훌륭한 답변입니다 ( +나에게서 100 번째 ;)). 그러나 4 단계에서 가리키는 예제 디렉토리를 찾지 못했습니다 . 대신 여기 /usr/share/doc/phpmyadmin/examples에 압축 된 sql 파일이 create_tables.sql.gz있습니다.
Majid Fouladpour

134

여기에 와서 데비안 / 우분투 (또는 다른 dpkg 기반 배포판)를 사용하는 경우 다음 명령을 실행하십시오.

sudo dpkg-reconfigure phpmyadmin

phpmyadmin 패키지에는이 작업을 수행하는 스크립트가 포함되어 있으며 필요한 모든 권한이있는 사용자입니다. 물론 루트로 로그인 한 경우 sudo는 필요하지 않습니다.

편집 : 현재 phpmyadmin 사용자를 삭제하는 것이 좋습니다.


2
이것은 나를 위해 일했습니다. 방금 요청한 데이터베이스를 다시 설치해야했습니다. 감사. (우분투 12.04)
ino

17
이 작업을 수행하기 위해 구성하는 동안 제어 사용자에 대해 "phpmyadmin"대신 "pma"를 입력해야했습니다.
Hardell

1
감사합니다, 당신은 내 하루를 구했습니다 :) hehe
Jeremy Dicaire

2
'phpmyadmin'사용자를 먼저 삭제 하고 나를 위해 일한 후 'sudo dpkg-reconfigure phpmyadmin'을 실행하십시오. 감사!
bshea

1
참고 : 이렇게하면 구성된 모든 서버가 지워집니다.
랩터

23

에서 "고급 기능 사용자"및 "고급 phpMyAdmin 기능"코드 블록 전체를 주석 처리하십시오 config.inc.php.


이것에 대한 설명이 있습니까? 어떻게 그리고 왜 작동합니까?
Huey

1
@Ben : 때때로 모든 것이 중요합니다;)
streak

어느 파일에서 .... 이것은 너무 유익하지 않습니다! 그러나 모두가 이해하기 때문에 바보처럼 느끼고 고칠 수 없습니다.
Jamie Hutber

2
config.inc.php
Rocoty

1
User for advanced features" and "Advanced phpMyAdmin features내부 와 같은 것은 존재하지 않습니다phpmyadmin/config.inc.php
AN

11

최근에 MySQL 서버 루트 비밀번호를 변경 했습니까? 답변이 예이면 phpMyAdmin 콘솔의 오류 / 경고 원인입니다. 문제를 해결하려면 phpMyAdmin의 config-db.php 파일을 편집하고 적절한 데이터베이스 비밀번호를 설정하십시오.

첫 번째 대답은 내 관점에서 너무 엉망이고 두 번째 대답은 나에게 효과가 없었습니다. 그래서:

Linux 기반 서버에서 파일은 일반적으로 다음 위치에 있습니다.

/etc/phpmyadmin/config-db.php

또는:

/etc/phpMyAdmin/config-db.php

예 : (내 파일은 다음과 같이보고 난에서 사용자를 변경 phpmyadminadmin내가 phpMyAdmin을 통해 내 데이터베이스를 유지하기 위해 만든 사용자 이름과 해당 암호에 넣어.

$dbuser='phpmyadmin';
$dbpass=''; // set current password between quotes ' '
$basepath='';
$dbname='phpmyadmin';
$dbserver='';
$dbport='';
$dbtype='mysql';

크레딧 : http://tehnoblog.org/phpmyadmin-error-connection-for-controluser-as-defined-in-your-configuration-failed/


4

이것은 우분투 16.04에서 phpmyadmin으로 저에게 효과적이었습니다.

/etc/phpmyadmin/config.inc.php를 편집하고 다음 두 줄을 변경했습니다.

$cfg['Servers'][$i]['controluser'] = 'root'; 
$cfg['Servers'][$i]['controlpass'] = 'thepasswordgiventoroot'; 

3

우분투에서.

Ben의 메시지는 가깝지만 문제의 루트 암호는 아닙니다. 내가 찾은 문제는 phpmyadmin 데이터베이스를 설치할 때 암호를 만들었 기 때문입니다. 이 암호는 우분투 설치에는 포함되지 않으므로 $ dbpass = ''변수; 데이터베이스 설정 파일의 비밀번호가 비어 있으며 설정 한 비밀번호가 아닙니다.

  1. 다음 명령을 사용하여 명령 행에서 mysql에 로그인 할 때 올바른 비밀번호를 확인하려면 다음 명령을 사용하십시오. mysql -u phpmyadmin -p 액세스가 거부 된 것으로 확인 된 빈 비밀번호를 시도하십시오. 설치 중에 설정 한 비밀번호를 사용하여 명령을 다시 입력하십시오. 로그인하면 비밀번호가 무엇인지 알 수 있습니다.
  2. /etc/phpadmin/config-db.php를 편집 하고 $ dbpass = ''를 변경 하십시오 ; $ dbpass = '비밀번호'; 파일을 저장하십시오.
  3. /etc/dbconfig-common/phpmyadmin.conf를 수정 하십시오. change dbc_dbpass = '' ; 에 dbc_dbpass = '비밀번호'; 파일을 저장하십시오. 브라우저를 닫고 다시로드하면 메시지가 사라졌습니다.


0

문제는 PhpMyAdmin 제어 사용자 (일반적으로 pma) 비밀번호가 mysql 사용자 : pma (동일한 사용자) 비밀번호와 일치하지 않는다는 것입니다.

이를 해결하려면 1. 사용자 pma에 대해 원하는 비밀번호를 여기에 설정하십시오.

"C : \ xampp \ phpMyAdmin \ config.inc.php"

$ cfg [ '서버'] [$ i] [ 'controlpass'] = 'your_new_phpmyadmin_pass';

(32 행과 같아야 함)

그런 다음 mysql로 ​​이동하여 루트로 로그인하고 다음으로 이동하십시오. (phpmyadmin을 사용하여 여기로 이동)

데이터베이스 : mysql»테이블 : 사용자

사용자 편집 : pma

기능 목록 (왼쪽 열)에서 "암호"를 선택하고 오른쪽 열에서 "your_new_phpmyadmin_pass"를 설정하고 이동을 누르십시오.

mysql 서버를 다시 시작하십시오.

이제 메시지가 사라져야합니다.


0

그냥 config.inc.php 파일을 변경하기 만하면됩니다. 이 링크에 오류가 있습니다. $ cfg [ '서버'] [$ i] [ '비밀번호'] = '비밀번호'; 이제는 완벽하게 작동했습니다.


질문을 편집하고 자세한 내용을 추가하십시오. 품질이 낮습니다.
Mathews Sunny

위의 해결책은 위의 단계를 따르지 않았습니다. 나는 단지 config.inc.php를 디렉토리로 이동하고 메모장에서이 파일 config.inc.php를을 열고이 라인 $하여 cfg [ '서버'] [$ i]를 [ '암호'] = '비밀번호'를 변경
Mohit Sharma

암호가 잘못되었다는 것을 알고 올바른 암호를 다시 넣고 저장 한 다음 phpmyadmin을 다시 실행하면 제대로 실행됩니다.
Mohit Sharma

0

우분투 /etc/phpmyadmin/config-db.php

암호가 제어 사용자의 config.inc.php와 일치하는지 확인하십시오

복어 너무 짧은 오류도

/var/lib/phpmyadmin/blowfish_secret.inc.php를 편집하고 키를 길게 만듭니다


0

etc/phpmyadmin/config.inc.php 댓글 에 우분투 18.04에 모든 블록

선택 사항 : 고급 기능을 사용하는 사용자


-1

오늘 XAMPP를 설치 한 후, mysql에 다른 기본 포트를 사용하기로 결정했습니다. 다음 행을 phpMyAdmin에 추가하십시오 config.inc.php.

$cfg['Servers'][$i]['host'] = 'localhost';

$cfg['Servers'][$i]['port'] = 'port';`
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.