Kết nối với bộ điều khiển như được định nghĩa trong cấu hình của bạn không thành công với chương trình phpMyAdmin trong XAMPP


127

Tôi vừa cài đặt XAMPP trên máy Windows XP của mình và tôi gặp lỗi:

Kết nối cho bộ điều khiển như được định nghĩa trong cấu hình của bạn không thành công.

Trước khi tôi cài đặt XAMPP, tôi đã cài đặt cơ sở dữ liệu MySQL và nó có mật khẩu. Tôi đã thay đổi và đặt mật khẩu trong config.inc.php cho MySQL và tôi đã gặp lỗi này:

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

Khi tôi cố gắng truy cập index.php, có vẻ như có gì đó không ổn với cài đặt XAMPP. Tôi có thể làm gì để khắc phục vấn đề này?


19
IMHO loại câu hỏi này khá phổ biến và rất nhiều thời gian bị lãng phí để khắc phục chúng. Ngoài ra, bởi "phạm vi vấn đề được xác định", thật đáng tranh luận nếu chúng ta có thể đặt nhiệm vụ đó dưới "công cụ mềm thường được lập trình viên sử dụng" hoặc "là một vấn đề thực tế, có thể trả lời là duy nhất cho sự phát triển mềm ". Vì vậy, tôi yêu cầu các cựu chiến binh SO xem xét bài đăng đó một cách cẩn thận trước khi đánh dấu" lạc đề ". SO trở thành một điểm đến đáng tin cậy, một điểm dừng để giải quyết vấn đề lập trình, từ những người đã đối mặt và giải quyết nó. Vì vậy, sẽ hữu ích cho người lập trình để có câu trả lời chính xác ở đây hơn là tìm kiếm mọi nơi cho vấn đề như vậy.
Dexter

Câu trả lời:


243
  1. Mở phpMyAdmin trong trình duyệt và đăng nhập bằng root.
  2. Tạo một cơ sở dữ liệu gọi là phpmyadmin
  3. Tạo người dùng được gọi pmavà đặt "máy chủ" thành tên máy chủ hoặc địa chỉ IP của máy chủ web của bạn (nếu máy chủ web và MySQL sử dụng cùng một hộp localhost), ghi lại mật khẩu và cấp cho người dùng mới toàn quyền kiểm soát các phpmyadmincơ sở dữ liệu. Người dùng này không nên truy cập vào bất cứ thứ gì ngoài cơ sở dữ liệu này.
  4. Chuyển đến thư mục cài đặt phpMyAdmin, nơi bạn sẽ tìm thấy một thư mục con được gọi sql.
  5. Trong sqlbạn sẽ tìm thấy một tập tin gọi là create_tables.sql. Mở nó trong một trình soạn thảo văn bản.
  6. Trong phpMyAdmin, chọn phpmyadmincơ sở dữ liệu và nhấp vào tab "SQL".
  7. Sao chép / dán toàn bộ văn bản từ create_tables.sqlvào hộp văn bản và chạy truy vấn.
  8. Mở config.inc.phptệp trong thư mục cài đặt phpMyAdmin và thêm các dòng sau (hoặc thay đổi cài đặt hiện có nếu chúng đã có):

    $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. Lưu và đóng tập tin.

QUAN TRỌNG - PMA tải cấu hình khi đăng nhập, đánh giá nó và lưu nó vào dữ liệu phiên để thông báo sẽ không biến mất cho đến khi bạn thực hiện việc này:

  1. Đăng xuất khỏi phpMyAdmin và đăng nhập lại

Vấn đề được giải quyết.


3
+1 cho "đăng xuất và đăng nhập lại". Tôi đã lãng phí năm phút không nhận ra mình phải làm điều đó.
Matthew G

1
@MatthewG Có, tệp cấu hình được tải vào phiên của bạn tại thời điểm bạn đăng nhập để cắt xuống đĩa I / O, do đó ^^ áp dụng cho mọi thay đổi bạn có thể thực hiện đối với tệp cấu hình PMA
DaveRandom

14
Vì một số lý do, phiên bản phpmyadmin của tôi có tên bảng là "pma__bookmark", v.v. với 2 "dấu gạch dưới". Nếu bất cứ ai cũng có điều tương tự, thì bạn nên chỉnh sửa "config.inc.php" cho phù hợp. Và BTW, tệp cấu hình được đặt trong thư mục "/ etc / phpmyadmin" trong Ubuntu
ajaybc

6
Trên Ubuntu 14.04, vị trí cho
created_tables.sql

5
Đây là một câu trả lời xuất sắc (thứ 100 +từ tôi;)). Tuy nhiên, tôi đã không tìm thấy thư mục ví dụ được chỉ ra ở bước 4. Thay vào đó là ở đây: /usr/share/doc/phpmyadmin/examplesvà ở đó tôi tìm thấy tệp sql được nén : create_tables.sql.gz.
Majid fouadpour

134

Nếu bạn đã đến đây và bạn đang sử dụng Debian / Ubuntu (hoặc bất kỳ bản phân phối dựa trên dpkg nào khác), hãy thực hiện lệnh sau:

sudo dpkg-reconfigure phpmyadmin

Gói phpmyadmin chứa tập lệnh để thực hiện thao tác này cho bạn, tất cả những gì nó cần là một người dùng có quyền. sudo là không cần thiết nếu bạn đăng nhập với quyền root, tất nhiên.

EDIT: Có thể đáng để cố gắng bỏ người dùng phpmyadmin hiện tại.


2
Điều này làm việc cho tôi, tôi chỉ cần cài đặt lại cơ sở dữ liệu mà nó yêu cầu. Cảm ơn. (Ubuntu 12.04)
ino

17
Tôi đã phải gõ "pma" thay vì "phpmyadmin" cho người dùng điều khiển trong quá trình cấu hình để thực hiện công việc này.
Hardell

1
Cảm ơn, bạn đã cứu ngày của tôi :) hehe
Jeremy Dicaire

2
Bỏ người dùng 'phpmyadmin' trước và chạy 'sudo dpkg-cấu hình lại phpmyadmin' sau khi làm việc cho tôi. Cảm ơn!
bshea

1
lưu ý: điều này sẽ xóa tất cả các máy chủ được cấu hình, nếu có.
Raptor

23

Chỉ cần nhận xét toàn bộ khối mã "Người dùng cho các tính năng nâng cao" và "Các tính năng phpMyAdmin nâng cao" config.inc.php.


Bất kỳ lời giải thích cho điều này? Làm thế nào và tại sao điều này làm việc?
Huey

1
@Ben: Đôi khi đó là tất cả vấn đề;)
streak

Trong đó tập tin .... Điều này là không chính xác! Nhưng mọi người đều hiểu nên tôi cảm thấy ngu ngốc và không thể sửa nó mất gấp đôi lol!
Jamie Hutber

2
Đó sẽ là config.inc.php
Rocoty 16/8/2016

1
Không tồn tại bất cứ thứ gì như User for advanced features" and "Advanced phpMyAdmin featuresbên trongphpmyadmin/config.inc.php
AN

11

Gần đây bạn đã thay đổi mật khẩu root máy chủ MySQL của bạn? Nếu câu trả lời là CÓ, thì đây là nguyên nhân gây ra lỗi / cảnh báo bên trong bảng điều khiển phpMyAdmin. Để khắc phục sự cố, chỉ cần chỉnh sửa tệp config-db.php của phpMyAdmin và thiết lập mật khẩu cơ sở dữ liệu phù hợp.

Câu trả lời đầu tiên gây rối quá nhiều trong quan điểm của tôi và câu trả lời thứ hai không hiệu quả với tôi. Vì thế:

Trong các máy chủ dựa trên Linux, tệp thường được đặt trong:

/etc/phpmyadmin/config-db.php

hoặc là:

/etc/phpMyAdmin/config-db.php

Ví dụ: (File của tôi trông như thế này và tôi đã thay đổi người dùng từ phpmyadminđể admin, tên người dùng tôi đã tạo cho việc duy trì cơ sở dữ liệu của mình thông qua phpMyAdmin, và đưa vào mật khẩu thích hợp.

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

tín dụng: http://tehnoblog.org/phpmyadmin-error-connection-for-controluser-as-dained-in-your-configuration-fails/


4

Điều này làm việc với tôi với phpmyadmin trong Ubuntu 16.04:

Tôi đã chỉnh sửa /etc/phpmyadmin/config.inc.php và thay đổi 2 dòng sau:

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

3

Trên Ubunbtu.

Thông báo của Ben rất gần nhưng đó không phải là mật khẩu gốc, đó là vấn đề tôi gặp phải là tôi đã tạo mật khẩu cho cơ sở dữ liệu phpmyadmin khi tôi cài đặt nó. Mật khẩu này không được thực hiện trong quá trình cài đặt trên Ubuntu, vì vậy biến $ dbpass = ''; trong tệp cài đặt cơ sở dữ liệu trống và không phải mật khẩu bạn đặt.

  1. Để kiểm tra xem bạn có đúng mật khẩu tại dòng lệnh đăng nhập vào mysql bằng lệnh sau: mysql -u phpmyadmin -p thử mật khẩu trống tôi thấy tôi đã truy cập bị từ chối, nhập lại lệnh bằng mật khẩu bạn đã đặt trong khi cài đặt. Nếu nó đăng nhập vào bạn bây giờ biết mật khẩu là gì.
  2. Chỉnh sửa /etc/phpadmin/config-db.php và thay đổi $ dbpass = ''; đến $ dbpass = 'Mật khẩu của bạn';và lưu tập tin.
  3. Chỉnh sửa /etc/dbconfig-common/phpmyadmin.conf thay đổi dbc_dbpass = '' ; to dbc_dbpass = 'Mật khẩu của bạn'; và lưu tập tin. Đóng trình duyệt của bạn và tải lại, bây giờ bạn sẽ thấy tin nhắn đã đi.


0

Vấn đề là mật khẩu người dùng kiểm soát PhpMyAdmin (thường là: pma) không khớp với mật khẩu người dùng mysql: pma (cùng một người dùng).

Để khắc phục, 1. Đặt mật khẩu bạn muốn cho người dùng pma tại đây:

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

$ cfg ['Máy chủ'] [$ i] ['controlpass'] = 'your_new_phpmyadmin_pass';

(nên giống như trên dòng 32)

Sau đó vào mysql, đăng nhập bằng root, truy cập: (Tôi đã sử dụng phpmyadmin để vào đây)

Cơ sở dữ liệu: mysql »Bảng: người dùng

Chỉnh sửa người dùng: pma

Chọn "Mật khẩu" từ danh sách chức năng (cột bên trái) và đặt "your_new_phpmyadmin_pass" trên cột bên phải và nhấn go.

Khởi động lại máy chủ mysql.

Bây giờ tin nhắn sẽ biến mất.


0

Tôi chỉ đơn giản là thực hiện các thay đổi trên tập tin config.inc.php. Có lỗi mật khẩu trong liên kết này $ cfg ['Máy chủ'] [$ i] ['password'] = 'mật khẩu của bạn'; và bây giờ nó hoạt động hoàn hảo.


vui lòng chỉnh sửa câu hỏi của bạn và thêm chi tiết. Đây là chất lượng thấp.
Mathews Nắng

Trên đây là độ phân giải, tôi đã không làm theo các bước trên. Tôi chỉ đơn giản là vào thư mục config.inc.php và mở tệp này config.inc.php trong notepad và dòng này đã thay đổi $ cfg ['Servers'] [$ i] ['password'] = 'your password'
Mohit Sharma

Tôi thấy mật khẩu được đề cập là sai và tôi đặt lại mật khẩu chính xác và lưu lại và chạy lại phpmyadmin và nó chạy đúng cách
Mohit Sharma

0

trên Ubuntu /etc/phpmyadmin/config-db.php

đảm bảo mật khẩu khớp với config.inc.php của bạn cho người dùng điều khiển

còn đối với cá kiếm lỗi quá ngắn

chỉnh sửa /var/lib/phpmyadmin/blowfish_secret.inc.php và làm cho khóa dài hơn


0

trên Ubuntu 18.04 trong etc/phpmyadmin/config.inc.php nhận xét tất cả các khối

Tùy chọn: Người dùng cho các tính năng nâng cao


-1

Mới cài đặt XAMPP ngày hôm nay, tôi quyết định sử dụng một cổng mặc định khác cho mysql, điều này thật kinh khủng. Đảm bảo thêm các dòng này vào phpMyAdmin config.inc.php:

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

$cfg['Servers'][$i]['port'] = 'port';`
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.