Не удается ввести phpmyadmin как root (MySQL 5.7)

Я использую Ubuntu desktop 16.04 (обновлено с 15.10).

Я установил phpmyadmin из apt-get install phpmyadmin. Он работает, если я перехожу к localhost/phpmyadmin, но я не могу войти в него как root.

Я много искал для него. Я нашел много источников, в которых они предлагают изменить /etc/phpmyadmin/config.inc.php и заменить пользователя и пароль на «root» и «» (пустым для пароля ). Но мой config.inc.php отличается от своего. Например, в моем файле нет строки для пользователя и пароля, и кажется, что она автоматически получает ее из другого файла, который является /etc/phpmyadmin/config-db.php. Несмотря на это, я изменил имя пользователя и пароль в этом файле, но теперь я получаю эту ошибку:

#1698 - Access denied for user 'root'@'localhost'

Что я должен делать?


Phpmyadmin Версия: 4.5.4.1deb2ubuntu1
mysql Ver 14.14 Распространение 5.7.12 для Linux (x86_64) с помощью обложек EditLine

40 голосов | спросил Mostafa Ahangarha 26 PMpTue, 26 Apr 2016 21:52:58 +030052Tuesday 2016, 21:52:58

8 ответов


82

MySQL 5.7 изменила безопасную модель: теперь для MySQL root требуется sudo.

I.e., phpMyAdmin будет не способен использовать учетные данные root.

Простейшим (и самым безопасным) решением будет создание нового пользователя и предоставление необходимых привилегий.

1. Подключиться к mysql

sudo mysql --user=root mysql

2. Создайте пользователя для phpMyAdmin

Запустите следующие команды (заменив some_pass на требуемый пароль):

CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Если ваш phpMyAdmin подключается к localhost, этого должно быть достаточно.

3. Дополнительно: разрешить удаленные соединения

Запомнить : разрешить удаленному пользователю иметь все привилегии в безопасности.

С учетом этого, если вы хотите, чтобы этот пользователь имел те же привилегии во время удаленных подключений, дополнительно (замена some_pass с помощью пароля, используемого на шаге 2):

CREATE USER 'phpmyadmin'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

4. Обновить phpMyAdmin

Используя sudo, отредактируйте /etc/dbconfig-common/phpmyadmin.conf файл, обновляющий значения пользователя /пароля в следующих разделах (заменив some_pass на пароль, используемый в шаге 2):

# dbc_dbuser: database user
#       the name of the user who we will use to connect to the database.
dbc_dbuser='phpmyadmin'

# dbc_dbpass: database user password
#       the password to use with the above username when connecting
#       to a database, if one is required
dbc_dbpass='some_pass'
ответил Rael Gugelmin Cunha 26 PMpTue, 26 Apr 2016 22:35:42 +030035Tuesday 2016, 22:35:42
7

Я столкнулся с той же проблемой при использовании mariaDB с phpmyadmin (Ubuntu 16.04LTS).

Предпосылки:

1) Установите MariaDB

sudo apt-get -y install mariadb-server mariadb-client
sudo mysql_secure_installation (answer to some interactive questions):
    Enter current password for root (enter for none): <enter>
    Set root password: n
    Remove anonymous users: n
    Disallow root login remotely: n
    Remove test database and access to it: n
    Reload privilege tables now: Y

Если вы хотите удалить mariaDB:

sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-5.5 mysql-client-core-5.5
sudo rm -rf /etc/mysql /var/lib/mysql
sudo apt-get autoremove
sudo apt-get autoclean

2) Установите phpmyadmin

sudo apt-get -y install phpmyadmin (and answer some interactive questions)
    Configuring phpmyadmin:
        Web server to reconfigure automatically: apache2
        Configure database for phpmyadmin with dbconfig-common: Yes
        MySQL application password for phpmyadmin: <blank>

3) В apache2 создайте символическую ссылку на phpmyadmin

sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
sudo a2enconf phpmyadmin.conf
sudo service apache2 restart

Хорошо, теперь, если вы будете следовать инструкциям Раэля, вы сможете войти в phpmyadmin, но, по крайней мере, для меня , Я не смог создать новые базы данных, поскольку появилось красное сообщение: No privileges (или какое-то подобное сообщение)

Исправление было путем перенастройки phpmyadmin и ответа на некоторые интерактивные вопросы.

sudo dpkg-reconfigure phpmyadmin
<Ok>
Reinstall database for phpmyadmin: <Yes>
Connection method for MySQL database server for phpmyadmin: TCP/IP
Host name of the MySQL database server for phpmyadmin: localhost
Port number for the MySQL service: 3306
MySQL database name for phpmyadmin: phpmyadmin
<Ok>
MySQL username for phpmyadmin: root
MySQL application password for phpmyadmin: pass  # OR ANY PASSWORD YOU WANT
Password confirmation: pass
Name of the database's administrative user: root
Web server to reconfigure automatically: apache2
An error occurred while installing the database: ignore

Теперь, если вы попытаетесь подключиться к phpmyadmin (localhost/phpmyadmin), используя

username: root
password: pass

вы сможете создавать базы данных.

ответил Dan Costinel 19 MarpmSun, 19 Mar 2017 21:36:16 +03002017-03-19T21:36:16+03:0009 2017, 21:36:16
2

Для полноты я нашел решение моей проблемы с использованием MariadB версии 10.1.23. Синтаксис, используемый для настройки нового пользователя, аналогичен синтаксису, указанному в сообщении выше от @ Rael Gugelmin Cunha. Я поставил здесь свое решение для ссылки на других, столкнувшихся с такими же проблемами:

[email protected]:# sudo mysql --user=root mysql
use mysql;
CREATE USER 'phpmyadmin'@'%' IDENTIFIED BY 'some_password';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Привет

ответил FIRE FOX 27 J0000006Europe/Moscow 2018, 15:02:00
2

В Ubuntu 16.04 для Mysql 5.7 проверьте данные таблицы и выполните необходимые настройки:

mysql>  SELECT User, Host, plugin FROM mysql.user;
+------------------+-----------+-----------------------+
| User             | Host      | plugin                |
+------------------+-----------+-----------------------+
| root             | localhost | auth_socket           |
| mysql.session    | localhost | mysql_native_password |
| mysql.sys        | localhost | mysql_native_password |
| debian-sys-maint | localhost | mysql_native_password |
| phpmyadmin       | localhost | mysql_native_password |
| root             | %         | mysql_native_password |
+------------------+-----------+-----------------------+

Убедитесь, что root имеет плагин auth_socket, а затем выполните команду ниже:

mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit;
ответил Syed Abdul Qadeer 25 J000000Wednesday18 2018, 12:44:40
1

Ссылаясь на Раэля Кунья:

Да, его решение работает, и я пробовал других. Однако обращение к пользователю, имеющему открытый пароль в файле конфигурации, таком как /etc/dbconfig-common/phpmyadmin.conf, выглядит как недостаток безопасности для общесистемного действия.

Итак, я предпочел бы предположить, что касается MariaDB 10.1.x (some_user и some_pass будут любыми, что вы можете придумать):

# mysql -u root
use mysql;
CREATE USER 'some_user'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON \*.\* TO 'some_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

и оставить phpadmin setup (4) как есть.

Войдите в phpmyadmin со своими учетными данными позже

В моих собственных настройках я заменяю вышеуказанный «%» на «localhost» для целей безопасности, но если на вашем сервере закрыт порт 3306, который не обязательно будет представлять угрозу безопасности для вас.

ответил Antonio J. de Oliveira 7 FebruaryEurope/MoscowbWed, 07 Feb 2018 16:28:09 +0300000000pmWed, 07 Feb 2018 16:28:09 +030018 2018, 16:28:09
1

Если phpymadmin не может подключиться, это может быть связано с тем, что механизм auth установлен на auth_socket. Вы можете изменить его для использования обычного пароля следующим образом:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'my_password";

Я боролся с этим только сейчас на чистой установке Ubuntu 18.04, и именно это заставило его работать. Здесь есть достойная статья, объясняющая больше:

https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/

ответил billynoah 29 AMpSun, 29 Apr 2018 08:34:07 +030034Sunday 2018, 08:34:07
0

У меня была такая же проблема, я следовал за советом, и никто из них не работал для меня! Моя проблема была такой же, когда я открыл localhost /phpmyadmin в своем браузере, и попросил подробности регистрации.

Я добавлял root как пользователь. и пароль, который я знал, был прав. и я получал # 1698 - Доступ запрещен для пользователя 'root' @ 'localhost'

все это используется phpmyadmin как пользователь не root, а также известный пароль и открывается.

надеюсь, что это поможет любому, как бы забавно, насколько я его не замечал. но работайте для меня с этой ошибкой # 1698 - Доступ запрещен для пользователя 'root' @ 'localhost'

ответил plutesci 16 J0000006Europe/Moscow 2018, 00:02:01
-2

, если вы устанавливаете MySQL отдельно, остановите его по этой команде ниже     остановка sudo /opt /lampp /lampp     служба mysql stop     sudo /opt /lampp /запуск лампы

ответил zouhair elhadraoui 16 MarpmFri, 16 Mar 2018 14:26:30 +03002018-03-16T14:26:30+03:0002 2018, 14:26:30

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132