任何用户均无 MySQL 权限

任何用户均无 MySQL 权限

我已经搜索了以前的帖子好几天了......但似乎没有解决办法,我冒着“重复发帖”的风险......

问题: 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 用户rootphpmyadmin,都应该具有“超级用户”权限,但是每次我尝试授予权限和/或通过 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'

神秘

当我通过浏览器登录 PHPMYADMIN 时,每个用户缺少的默认数据库都不同。这是我为我的root用户看到的:

在此处输入图片描述

笔记: 单击Check privileges仅会导致出现一条确认没有权限的消息。

当我以用户身份登录 PHPMYADMIN 时phpmyadmin,我看到的内容如下: 在此处输入图片描述

笔记:再次单击Check privileges只会导致出现一条消息,指出我对数据库没有权限。

此外,在 phpmyadmin 中,我没有任何Users选项Privileges卡可以单击来添加用户和/或权限。 在此处输入图片描述

此外,当我从命令行登录 MySQL 时,使用命令SHOW GRANTSSHOW DATABASES用户我会得到上面的屏幕截图中显示的信息的确认。rootphpmyadmin

我尝试过的解决方案:

1.) 我通过以下方式安装了 LAMP tasksel,并确认它安装完美http://localhost/phpinfo.phpsudo apache2ctl configtest

2.) 我已经完全卸载、清除并重新安装了 phpmyadmin

3.) 我确认 apache2 已正确配置为使用 phpmyadmin,方法是ls /etc/apache2/conf-available/ls /etc/apache2/conf-enabled/

4.) 我尝试了回复中列出的所有建议的解决方案类似的问题在这里找到.包括跑步:

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.

我已经阅读了其他问题/解决方案两天了,但没有一个与我的 LAMP/OS 配置(mysql 5.7 和 ubuntu 18.04)相匹配,而且绝大多数都假设用户的权限有效。

有人知道如何解决这个问题吗?

谢谢

答案1

问题原因: 如果您尝试安装 myphpadmin,遇到任何问题,然后决定完全卸载 phpmyadmin....当 myphpmyadmin 询问您是否要删除相关数据库、用户权限和配置时,请不要选择“是”。相反,选择“否”,然后卸载完成,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' with GRANT OPTION;mysql>提示符开始。

在此刻:我决定完全重新安装 phpmyadmin,因为即使我恢复了超级用户权限,一些默认安装数据库仍然缺失。但是,这次当系统询问我是否要删除默认数据库、用户权限和配置时,我选择了“否”。然后我sudo apt-get autoremove phpmyadmin && sudo apt-get purge phpmyadmin删除了所有已安装的附加软件包。

一旦我运行sudo apt install phpmyadmin php-mbstring php-gettext,, sudo phpenmod mbstringphpmyadminsudo phpenmod mbstring就能完美运行。

答案2

如果您在命令行登录时丢失权限,那么这不是 PhpMyAdmin 问题。您是否尝试过以下解决方案https://stackoverflow.com/questions/1709078/how-can-i-restore-the-mysql-root-user-s-full-privileges

使用该选项停止mysqld并重新启动它。只需使用以下方法--skip-grant-tables连接到服务器:(即无选项,可能不需要用户名)。mysqldmysql-p

在 mysql 客户端中发出以下命令:

UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';

FLUSH PRIVILEGES;

此后,您就可以运行它GRANT ALL ON *.* TO 'root'@'localhost';并让它工作了。

相关内容