2016-05-09 12 views
0

Каждый раз, когда я пытаюсь получить доступ к phpMyAdmin, он выдает диалог, требующий имя пользователя и пароль. Я пытаюсь использовать root как имя пользователя и оставляю пароль пустым, он не работает. Однако, когда я пытаюсь использовать admin как имя пользователя и оставляю пароль пустым, он работает. Но есть еще одна проблема, она показывает, что у администратора нет никаких оснований для создания базы данных.Не удается получить доступ к phpmyadmin

Так как я могу получить доступ к phpmyadmin как root? Или как я могу повысить привилегию при входе в систему как администратор?

Ниже config.inc.php:

$cfg['Servers'][$i]['host']   = '127.0.0.1'; // MySQL hostname or IP address 
$cfg['Servers'][$i]['port']   = '';   // MySQL port - leave blank for default port 
$cfg['Servers'][$i]['socket']  = '';   // Path to the socket - leave blank for default socket 
$cfg['Servers'][$i]['connect_type'] = 'tcp';  // How to connect to MySQL server ('tcp' or 'socket') 
$cfg['Servers'][$i]['extension']  = 'mysql';  // The php MySQL extension to use ('mysql' or 'mysqli') 
$cfg['Servers'][$i]['compress']  = FALSE;  // Use compressed protocol for the MySQL connection 
               // (requires PHP >= 4.3.0) 
$cfg['Servers'][$i]['hide_db'] = 'information_schema'; 

$cfg['Servers'][$i]['controluser'] = '';   // MySQL control user settings 
               // (this user must have read-only 
$cfg['Servers'][$i]['controlpass'] = '';   // access to the "mysql/user" 
               // and "mysql/db" tables). 
               // The controluser is also 
               // used for all relational 
               // features (pmadb) 
$cfg['Servers'][$i]['auth_type']  = 'http'; // Authentication method (config, http or cookie based)? 
$cfg['Servers'][$i]['user']   = 'root';  // MySQL user 
$cfg['Servers'][$i]['password']  = '';   // MySQL password (only needed 
               // with 'config' auth_type) 
$cfg['Servers'][$i]['only_db']  = '';   // If set to a db-name, only 
               // this db is displayed in left frame 
               // It may also be an array of db-names, where sorting order is relevant. 
$cfg['Servers'][$i]['verbose']  = '';   // Verbose name for this host - leave blank to show the hostname 
+1

Вы пробовали [настройка auth_type для config] (https://wiki.phpmyadmin.net/pma/Auth_types)? –

+0

127.0.0.1 и localhost отличаются для таблицы mysql.User. поэтому попробуйте использовать localhost, чем 127.0.0.1, как хост – num8er

ответ

0

Попробуйте войти в систему от клиента командной строки. Вы говорите, что пытаетесь использовать пустой пароль, но я не вижу директивы конфигурации $cfg['Servers'][$i]['AllowNoPassword'] = true;, которая требуется для входа в систему с пустыми паролями.

Также обратите внимание на то, что с auth_type = 'http' вам не нужны директивы или $cfg['Servers'][$i]['password']; они используются только с auth_type = 'config'.

Есть ли вероятность, что вы установили пароль ранее? Многие менеджеры пакетов запрашивают пароль во время установки. Убедитесь, что вы используете пароль пользователя root MySQL, а не пользователь root. Это может быть немного запутанным, поскольку оба они называются root.

Попробуйте войти в систему от клиента командной строки; что-то вроде mysql -u root -p должно быть близко.

В MySQL, поле хоста % отличается от localhost так, поскольку вы подключаетесь через TCP/IP сеть на 127.0.0.1, счет вы аутентичность против это один или с «127.0.0.1» или '%' в качестве хоста, а не «localhost» - хотя вы можете попробовать подключиться через сокеты, чтобы увидеть, что это изменит ситуацию. Измените строку $cfg['Servers'][$i]['connect_type'] = 'tcp'; на $cfg['Servers'][$i]['connect_type'] = 'socket'; и/или используйте mysql --protocol=socket -u root -p в командной строке, чтобы попробовать эту другую учетную запись; если это работает, вы можете исправить пароль другого пользователя, не прибегая к грубой силе.

Если вы все еще не можете подключиться, вам нужно будет reset the MySQL root password.

Причина, по которой учетная запись пользователя «admin» работает, но не имеет каких-либо разрешений, заключается в том, что у вас включен анонимный пользователь, и вы подключаетесь как анонимный/несуществующий пользователь. Такие пользователи обычно могут подключаться, но на самом деле ничего не делают после этого. Вы можете поставить «кухню» как свое имя пользователя и «таблицу» в качестве пароля с аналогичными результатами.

0

Это не рекомендуется или даже выступали профессионалами использовать корневой учетной записи в качестве входа для базы данных. Вы должны смотреть в GRANT с в базе данных, что-то вдоль линий

GRANT SELECT, INSERT ON MyDB.* to MyDB[email protected]'localhost' IDENTIFIED BY 'MyDBPassword'; 
0

Лучший способ получить привилегии суперпользователя на системе * NIX см here инструкции по восстановлению корневых учетных записей MySQL.

Смежные вопросы