我已经搜索了几天以前的帖子......似乎没有解决方案有效,我冒着“重复帖子”的风险......
问题: 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
阿帕奇2
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'
神秘
当我通过浏览器登录 PHPMYADMIN 时,每个用户缺少的默认数据库都不同。这是我为我的root
用户看到的:
注意: 单击Check privileges
只会导致确认没有权限的消息。
当我以用户身份登录 PHPMYADMIN 时phpmyadmin
,我看到的是:
注意:同样,单击Check privileges只会导致一条消息,指出我对 dbs 没有权限。
同样在 phpmyadmin 内部,我没有任何Users选项Privileges卡可以单击以添加用户和/或权限。
此外,当我从命令行登录 MySQL 时,使用命令SHOW GRANTS
和SHOW DATABASES
forroot
和phpmyadmin
users 我会确认上面屏幕截图中显示的信息。
我尝试过的解决方案:
1.)我通过安装 LAMP并tasksel
确认它安装完美无瑕http://localhost/phpinfo.php
sudo apache2ctl configtest
2.) 我已经完全卸载、清除并重新安装了 phpmyadmin
3.) 我确认 apache2 已正确配置为使用 phpmyadminls /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.
我已经阅读了 2 天的其他问题/解决方案,但没有一个与我的 LAMP / OS 配置与 mysql 5.7 和 ubuntu 18.04 相匹配,并且绝大多数假设用户的权限有效。
任何人有任何想法如何解决这个问题?
谢谢
问题原因: 如果您尝试安装 myphpadmin,遇到任何问题,然后决定完全卸载 phpmyadmin....当 myphpmyadmin 询问您是否要删除相关数据库、用户权限和 & 时,请勿选择“是”配置。INSTEAD,选择“NO”,然后卸载完成运行
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 mbstring
和sudo phpenmod mbstring
phpmyadmin 就可以完美运行。如果您甚至在命令行登录时也错过了特权,那么这不是 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 客户端中发出以下命令:
之后,您应该能够运行
GRANT ALL ON *.* TO 'root'@'localhost';
并让它工作。