Я искал предыдущие посты уже несколько дней ... и кажется, что ни одно решение не работает, я рискую «дублировать пост» ...
ПРОБЛЕМА: PHPMYADMIN устанавливается без сбоев, но ни один из моих пользователей не имеет даже базовых разрешений (например, отбрасывать, создавать, предоставлять и т. д.). Поэтому я не могу создать свои базы данных для WordPress и Drupal на моем локальном сервере разработки.
базовая информация
Свежая установка Ubuntu 18.04
Linux rider1 5.3.0-53-generic #47~18.04.1-Ubuntu SMP Thu May 7 13:10:50 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Apache2
Server version: Apache/2.4.29 (Ubuntu)
MySQL 5.7
mysql Ver 14.14 Distrib 5.7.30, for Linux (x86_64) using EditLine wrapper
PHP 7
PHP 7.2.24-0ubuntu0.18.04.6 (cli) (built: May 26 2020 13:09:11) ( NTS )
ДЕТАЛИ ПРОБЛЕМЫ: У меня есть два пользователя mysql root и ] phpmyadmin , оба должны иметь привилегии «суперпользователя», но каждый раз, когда я пытаюсь предоставить привилегии и / или создать базу данных, используя любого пользователя через mysql, Я получаю следующие ошибки, соответственно:
GRANT PRIVILEGES: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
CREATE DATABASE: ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'wp_db'
MYSTERY
Когда я вхожу в PHPMYADMIN через браузер, базы данных по умолчанию отсутствуют, они различны для каждого пользователя. Это то, что я вижу для моего пользователя root
:
ПРИМЕЧАНИЕ: Нажатие Проверка привилегий
приводит только к сообщению, подтверждающему отсутствие привилегий.
При входе в PHPMYADMIN как пользователь phpmyadmin
, вот что я вижу:
ПРИМЕЧАНИЕ: Снова, щелкнув по Проверка привилегий , выдается только сообщение о том, что у меня нет привилегий на базе данных.
Также внутри phpmyadmin у меня нет Пользователи или Привилегии , на которые можно щелкнуть, чтобы добавить пользователей и / или привилегии. ) Я пробовал все предложенные решения, перечисленные в ответ на аналогичный вопрос, найденный здесь . Включая запуск:
sudo systemctl stop mysql
sudo dpkg-reconfigure mysql-server-5.7
sudo systemctl start mysql
, который дал следующие результаты:
myuser@mymachine:~$ sudo dpkg-reconfigure mysql-server-5.7
Checking if update is needed.
Checking server version.
Running queries to upgrade MySQL server.
Checking system database.
mysql.columns_priv OK
mysql.db OK
mysql.engine_cost OK
mysql.event OK
mysql.func OK
mysql.general_log OK
mysql.gtid_executed OK
mysql.help_category OK
mysql.help_keyword OK
mysql.help_relation OK
mysql.help_topic OK
mysql.innodb_index_stats OK
mysql.innodb_table_stats OK
mysql.ndb_binlog_index OK
mysql.plugin OK
mysql.proc OK
mysql.procs_priv OK
mysql.proxies_priv OK
mysql.server_cost OK
mysql.servers OK
mysql.slave_master_info OK
mysql.slave_relay_log_info OK
mysql.slave_worker_info OK
mysql.slow_log OK
mysql.tables_priv OK
mysql.time_zone OK
mysql.time_zone_leap_second OK
mysql.time_zone_name OK
mysql.time_zone_transition OK
mysql.time_zone_transition_type OK
mysql.user OK
The sys schema is already up to date (version 1.5.2).
Checking databases.
phpmyadmin.pma__bookmark OK
phpmyadmin.pma__central_columns OK
phpmyadmin.pma__column_info OK
phpmyadmin.pma__designer_settings OK
phpmyadmin.pma__export_templates OK
phpmyadmin.pma__favorite OK
phpmyadmin.pma__history OK
phpmyadmin.pma__navigationhiding OK
phpmyadmin.pma__pdf_pages OK
phpmyadmin.pma__recent OK
phpmyadmin.pma__relation OK
phpmyadmin.pma__savedsearches OK
phpmyadmin.pma__table_coords OK
phpmyadmin.pma__table_info OK
phpmyadmin.pma__table_uiprefs OK
phpmyadmin.pma__tracking OK
phpmyadmin.pma__userconfig OK
phpmyadmin.pma__usergroups OK
phpmyadmin.pma__users OK
sys.sys_config OK
Upgrade process completed successfully.
Checking if update is needed.
Я читаю другие вопросы / решения в течение 2 дней, и ни один из них не соответствует моей конфигурации LAMP / OS с mysql 5.7 и ubuntu 18.04, и подавляющее большинство предполагают, что привилегии работают пользователи.
У кого-нибудь есть идеи, как решить эту проблему?
thx
ПРИЧИНА ПРОБЛЕМЫ:
Если вы пытаетесь установить myphpadmin, столкнуться с какими-либо проблемами, а затем решить полностью удалить phpmyadmin .... НЕ выбирайте «ДА», когда myphpmyadmin спрашивает, хотите ли вы удалить связанные БД, пользовательские привилегии и конфигурации. INSTEAD, выберите «НЕТ», затем деинсталляция завершена, запустите sudo apt-get autoremove
, чтобы избавиться от установленных пакетов программного обеспечения дополнения.
ЕСЛИ ВЫ ВЫБИРАЕТЕ «ДА» (причина проблемы продолжение):
Что происходит, так это то, что процесс удаления удаляет крайне важный каталог, необходимый для правильной работы mysql. А именно, / var / run / mysqld
Чтобы переустановить жизненно важный каталог, используйте следующую команду:
sudo mkdir -v / var / run / mysqld && sudo chown mysql / var / run / mysqld
После этой команды вы сможете восстановить свои привилегии пользователя root
, используя следующие команды:
sudo mysqld --skip-grant-tables &
, затем
sudo mysql -u root mysql
и GRANT ALL ON *. * TO 'user' @ 'localhost' с опцией GRANT;
из приглашения mysql>
.
НА ЭТОМ УКАЗАНИИ: Я решил полностью переустановить phpmyadmin, потому что, хотя у меня были восстановлены привилегии суперпользователя, некоторые из баз данных установки по умолчанию все еще отсутствовали. Однако на этот раз я выбрал «НЕТ», когда меня спросили, хочу ли я удалить базы данных по умолчанию, пользовательские привилегии и конфигурации. Затем я использовал sudo apt-get autoremove phpmyadmin && sudo apt-get purge phpmyadmin
, чтобы избавиться от всех установленных дополнительных пакетов.
После запуска sudo apt install phpmyadmin php- mbstring php-gettext
, sudo phpenmod mbstring
,
Если вы пропустите привилегии даже по команде Линия входа, то это не проблема PhpMyAdmin. Пробовали ли вы решение ниже, найденное на https://stackoverflow.com/questions/1709078/how-can-i-restore-the-mysql-root-user-s-full-privileges
Стоп mysqld
и перезапустите его с опцией - skip-grant-tables
.
Подключитесь к серверу mysqld
с помощью просто: mysql
(т. Е. Без опции -p
, и имя пользователя может не потребоваться).
Введите следующие команды в клиент mysql:
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;
После этого вы сможете запустить GRANT ALL ON *. * TO 'root' @ 'localhost';
и заставить его работать.