Не удалось войти в учетную запись phpmyadmin [dубликат]

Я использую 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

47
задан 28 April 2016 в 21:07

16 ответов

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

Т.е. 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. Необязательно: разрешать удаленные подключения

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

С учетом этого, если вы хотите этого пользователь должен иметь одинаковые привилегии во время удаленных подключений, дополнительно выполнить (заменив 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'
73
ответ дан 17 July 2018 в 21:30

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

Т.е. 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. Необязательно: разрешать удаленные подключения

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

С учетом этого, если вы хотите этого пользователь должен иметь одинаковые привилегии во время удаленных подключений, дополнительно выполнить (заменив 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'
74
ответ дан 23 July 2018 в 22:09

Если 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 /

0
ответ дан 17 July 2018 в 21:30

Я столкнулся с той же проблемой при использовании 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

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

7
ответ дан 17 July 2018 в 21:30

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

Да, его решение работает, и я пробовал других. Однако обращение к пользователю, имеющему открытый пароль в файле конфигурации, например /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 с вашими учетными данными после этого [ ! d4]

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

1
ответ дан 17 July 2018 в 21:30

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

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

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

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

0
ответ дан 17 July 2018 в 21:30

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

root@raspberrypi:# 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;

С уважением

1
ответ дан 17 July 2018 в 21:30

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

-2
ответ дан 17 July 2018 в 21:30

Если 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 /

0
ответ дан 23 July 2018 в 22:09

Я столкнулся с той же проблемой при использовании 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

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

7
ответ дан 23 July 2018 в 22:09
  • 1
    Спасибо за ваш ответ. Но не лучше ли просто делиться последней частью, а не целым? Я думаю, что остальное здесь не полезно? – Mostafa Ahangarha 20 March 2017 в 21:02
  • 2
    @MostafaAhangarha Возможно, сообщение слишком длинное, но мне всегда нравится знать контекст, в котором дается ответ. – Dan Costinel 21 March 2017 в 01:55
  • 3
    Имеет ли в работе sudo dpkg-reconfigure phpmyadmin какое-либо соединение с установкой mariadb и unistalling mysql? Если да, то ваша информация может быть полезна (возможно, потому, что вы предлагаете удалить mysql, который я использую для БД, и буду использовать). Если нет, тогда нет смысла давать это как контекст. Если я ошибаюсь, сделайте меня правильным. – Mostafa Ahangarha 21 March 2017 в 12:47
  • 4
    Я только следил за реконфигурацией, и теперь это работает. – cwhisperer 20 June 2018 в 11:46

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

Да, его решение работает, и я пробовал других. Однако обращение к пользователю, имеющему открытый пароль в файле конфигурации, например /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 с вашими учетными данными после этого [ ! d4]

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

1
ответ дан 23 July 2018 в 22:09

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

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

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

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

0
ответ дан 23 July 2018 в 22:09
  • 1
    Вы имеете в виду, что имя пользователя должно быть & quot; phpmyadmin & quot ;? – Mostafa Ahangarha 16 June 2018 в 00:05
  • 2
    Да, это сработало для меня – plutesci 16 June 2018 в 05:47

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

root@raspberrypi:# 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;

С уважением

1
ответ дан 23 July 2018 в 22:09
  • 1
    Добро пожаловать в Ask Ubuntu! Спросите Ubuntu только для Ubuntu, пожалуйста, не публикуйте ответы о Raspbian (на основе Debian). – ubashu 28 June 2018 в 07:59
  • 2
    @ubashu Это решение не является специфичным для Raspbian, оно специфично для MariaDB. – Thomas Ward♦ 28 June 2018 в 20:38

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

-2
ответ дан 23 July 2018 в 22:09

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

-2
ответ дан 5 August 2018 в 02:15

В 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 |
+------------------+-----------+-----------------------+

Проверьте, есть ли у корня плагин auth_socket, а затем выполните команду ниже:

mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit;
1
ответ дан 5 August 2018 в 02:15

Другие вопросы по тегам:

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