Невозможно ввести 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 Distrib 5.7.12, для Linux (x86_64) с использованием оболочки EditLine

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

9 ответов

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. Дополнительный и небезопасный: позвольте удаленные соединения

, Помнят : позвольте удаленному пользователю иметь все полномочия, проблема безопасности, и это не требуется в большинстве случаев.

Принимая это во внимание, если Вы хотите, чтобы у этого пользователя были те же полномочия во время удаленных соединений, дополнительно выполненный (замена 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'
124
ответ дан 29 April 2016 в 07:07
  • 1
    Привет человек, может Вы говорить мне, как записать порядок Повторно смонтировать Вашу систему как чтение-запись. И как Отредактировать Ваш/etc/passwd файл с нано. Я - новый пользователь человечности. большое спасибо – kindlong 24 September 2017 в 03:31

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

хорошо, теперь, если Вы будете следовать инструкциям Rael, то Вы сможете войти в систему в 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

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

10
ответ дан 29 April 2016 в 07:07
  • 1
    @kindlong я уже делаю - it' s команда в конце строки после периода. – Thomas Ward♦ 24 September 2017 в 03:31

Что касается Куны Rael:

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

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

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

1
ответ дан 22 November 2019 в 23:32

при установке MySQL отдельная остановка, это этой командой ниже sudo/opt/lampp/lampp сервис остановки mysql останавливается, sudo/opt/lampp/lampp запускаются

-2
ответ дан 22 November 2019 в 23:32

Если phpymadmin не может соединиться, это может произойти из-за подлинного набора механизма к 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/

6
ответ дан 22 November 2019 в 23:32

В 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;
6
ответ дан 22 November 2019 в 23:32

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

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;

С уважением

3
ответ дан 22 November 2019 в 23:32

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

Я использовал корень в качестве пользователя, и пароль, который я знал, был правильным. И я добирался

1698. - Доступ запрещен для пользователя 'базируются' 'localhost'

Все, что потребовалось, должно было использовать phpmyadmin как пользователь, нет root, с известным паролем и это впустило меня.

2
ответ дан 22 November 2019 в 23:32

Только ниже кода работает на человечность 18.04, php 7 выше и mysql 5.7

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

Не заменяйте 'phpmyadmin'. Создание любого другого пользователя не имеет полных полномочий, любят, создают нового пользователя, присваивают полномочия базы данных тому пользователю как этот. Только пользователь phpmyadmin получит полный доступ.

0
ответ дан 22 November 2019 в 23:32

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

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