Я использую 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 изменил модель безопасности: теперь для
root
входа в MySQL требуетсяsudo
.То есть phpMyAdmin не сможет использовать
root
учетные данные.Самым простым, безопасным и постоянным решением будет создание нового пользователя и предоставление необходимых привилегий.
1. Подключитесь к mysql
2. Создать реальный пароль
В следующих шагах я буду использовать
some_pass
в качестве примера пароля. ПОЖАЛУЙСТА, ЗАМЕНИТЕ ЕГО ПАРОЛЕМ! НЕ ИСПОЛЬЗУЙТЕSOME_PASS
КАК ПАРОЛЬ!3. Создайте пользователя для phpMyAdmin
Запустите следующие команды (заменив
some_pass
на нужный пароль):Если ваш phpMyAdmin подключается к localhost, этого должно быть достаточно.
4. Необязательно и небезопасно: разрешите удаленные подключения
Помните : разрешить удаленному пользователю иметь все привилегии - это проблема безопасности, и в большинстве случаев это не требуется.
Имея это в виду, если вы хотите, чтобы этот пользователь имел те же привилегии во время удаленных подключений, дополнительно запустите (заменив
some_pass
его паролем, использованным на шаге № 2):5. Обновите phpMyAdmin
Используя
sudo
, отредактируйте/etc/dbconfig-common/phpmyadmin.conf
файл, обновляя значения пользователя / пароля в следующих разделах (заменивsome_pass
паролем, использованным в Шаге 2):источник
root
пользователь всегда требовалsudo
использования на 5.7. Итак, я обновил ответ, чтобы создать нового пользователя со всеми привилегиями.Я столкнулся с той же проблемой при использовании mariaDB с phpmyadmin (Ubuntu 16.04LTS).
Предпосылки:
1) Установите MariaDB
Если вы хотите удалить
mariaDB
:2) Установите phpmyadmin
3) В apache2 создайте символическую ссылку на phpmyadmin
Хорошо, теперь, если вы будете следовать инструкциям Раэля, вы сможете войти в систему
phpmyadmin
, но, по крайней мере для меня, я не смог создать новые базы данных, так как появилось красное сообщение:No privileges
(или какое-то подобное сообщение)Исправление было сделано путем перенастройки phpmyadmin и ответов на некоторые интерактивные вопросы.
Теперь, если вы попытаетесь подключиться к phpmyadmin (
localhost/phpmyadmin
) с помощьюВы сможете создавать базы данных.
источник
sudo dpkg-reconfigure phpmyadmin
какое-либо соединение с установкой mariadb и unistalling mysql? Если да, то ваша информация может быть полезна (возможно, потому, что вы предлагаете удалить mysql, которая является БД, которую я использую и буду использовать). Если нет, то нет смысла давать его в качестве контекста. Если я ошибаюсь, поправьте меня.В Ubuntu 16.04 для Mysql 5.7 проверьте информацию в таблице ниже и выполните необходимые настройки:
Проверьте, есть ли у root плагин auth_socket, затем выполните следующую команду:
источник
apt
обновления MySQL . То есть вам придется применять это после каждого обновления MySQL в Ubuntu.Если phpymadmin не может подключиться, это может быть связано с установленным механизмом аутентификации
auth_socket
. Вы можете изменить его на обычный пароль, например так:Я боролся с этим только сейчас на чистой установке Ubuntu 18.04, и именно это заставило его работать. Здесь есть достойная статья, объясняющая больше:
https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/
источник
Для полноты я нашел решение моей проблемы с использованием MariadB версии 10.1.23. Синтаксис, который нужно использовать для настройки нового пользователя, аналогичен синтаксису, описанному в посте выше @Rael Gugelmin Cunha, я разместил здесь свое решение для ссылки на других, сталкивающихся с такой же проблемой:
С уважением
источник
У меня была та же проблема, я следовал большинству советов, и ни один из них не работал для меня! Моя проблема была такой же, когда я открыл http: // localhost / phpmyadmin в своем браузере, он запросил данные для входа.
Я использовал root как пользователь, и пароль, который я знал, был правильным. И я получал
Все, что потребовалось, чтобы использовать
phpmyadmin
как пользователь, а неroot
, с известным паролем, и это позволило мне войти.источник
some_pass
реальным паролем!Ссылаясь на Раэль Кунья:
Да, его решение работает, и я пробовал другие. Однако ссылка на пользователя, имеющего открытый пароль в файле конфигурации,
/etc/dbconfig-common/phpmyadmin.conf
выглядит как недостаток безопасности для общесистемного действия.Так что я бы предпочел предложить что-
MariaDB 10.1.x
то в этом роде (some_user и some_pass будут чем-то, что вы можете придумать):и оставив настройку phpadmin (4) как есть.
Войдите в phpmyadmin с вашими учетными данными впоследствии
В моих собственных настройках я заменяю вышеуказанный «%» на «localhost» в целях безопасности, но если у вас закрыт порт 3306 на вашем сервере, это не обязательно представляет угрозу безопасности для вас.
источник
Только код ниже работает для Ubuntu 18.04, PHP 7 выше и MySQL 5.7
Не заменяйте phpmyadmin. Создание любого другого пользователя не имеет полных привилегий, таких как создание нового пользователя, присвоение этому пользователю привилегий базы данных. Только пользователь phpmyadmin получит полный доступ.
источник
если вы устанавливаете MySQL отдельно, остановите его этой командой ниже sudo / opt / lampp / lampp stop service mysql stop sudo / opt / lampp / lampp start
источник