Я использую 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
MySQL 5.7 изменил безопасную модель: теперь вход в систему MySQL root
требует sudo
.
Т.е. phpMyAdmin будет не способны использовать root
учетные данные.
самое простое, самое безопасное и постоянный , которым будет решение, создают нового пользователя и предоставляют требуемые полномочия.
sudo mysql --user=root mysql
следующие команды (заменяющий some_pass
желаемым паролем):
CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
, Если Ваш phpMyAdmin соединяется с localhost, это должно быть достаточно.
, Помнят : позвольте удаленному пользователю иметь все полномочия, проблема безопасности, и это не требуется в большинстве случаев.
Принимая это во внимание, если Вы хотите, чтобы у этого пользователя были те же полномочия во время удаленных соединений, дополнительно выполненный (замена some_pass
паролем, используемым на Шаге № 2):
CREATE USER 'phpmyadmin'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
обновления Используя 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'
Я сталкивался с той же проблемой при использовании 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
, Вы сможете создать базы данных.
Что касается Куны 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 закрытых на Вашем сервере, который не обязательно представил бы угрозу безопасности Вам.
при установке MySQL отдельная остановка, это этой командой ниже sudo/opt/lampp/lampp сервис остановки mysql останавливается, sudo/opt/lampp/lampp запускаются
Если 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/
В 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;
Для полноты я нашел решение своей проблемы в использовании версии 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;
С уважением
У меня была та же проблема, я последовал больше всего совету, и ни один из него не работал на меня! Моей проблемой было то же, когда я открыл http://localhost/phpmyadmin в своем браузере, это попросило журнал в деталях.
Я использовал корень в качестве пользователя, и пароль, который я знал, был правильным. И я добирался
1698. - Доступ запрещен для пользователя 'базируются' 'localhost'
Все, что потребовалось, должно было использовать phpmyadmin
как пользователь, нет root
, с известным паролем и это впустило меня.
Только ниже кода работает на человечность 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 получит полный доступ.