丢失了MYSQL中的所有权限

els*_*hae 5 mysql database phpmyadmin

我在本网站和许多其他论坛上以多种形式看过同样的问题.但是,我已经尝试了所有的解决方案,但仍然有相同的结果.我很确定我曾经在这个MySQL服务器上有过root权限,我甚至可以使用phpMyAdmin工具在其他查询中创建数据库.现在,当我去phpMyAdmin并点击数据库时,我受到以下问候:

在此输入图像描述

如果我使用命令工具,我可以使用以下命令登录:

mysql -u root -p
Run Code Online (Sandbox Code Playgroud)

我被提示输入密码,我这样做了.当我尝试做任何其他事情时,请说:

mysql> SELECT user, host FROM mysql.user;

I get the following:
ERROR 1142 (42000): SELECT command denied to user 'root'@'localhost' for table 'user'
Run Code Online (Sandbox Code Playgroud)

我也跟着这篇文章(http://benrobb.com/2007/01/15/howto-remote-root-access-to-mysql/),因为我是从远程机器ssh到这个MySQL服务器.再次,当我尝试:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
Run Code Online (Sandbox Code Playgroud)

在各种形式,我受到一个令人讨厌的问题:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Run Code Online (Sandbox Code Playgroud)

即使我使用相同的密码登录我!我还想提一下,昨天我更新了我的梨资源,我想知道这是不是因为这个混乱......

如果有人能指导我,我真的很感激.感谢您的所有时间和考虑.

Elshae

****更新****在尝试排除故障并运行mysqld时,我现在无法启动服务器备份!每次我跑:

/etc/init.d/mysql start
Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed!
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

Pet*_*tch 6

停止你的MySQL服务(UNIX风格):

/etc/init.d/mysqld stop 
Run Code Online (Sandbox Code Playgroud)

使用权限启动MySQL:

/usr/bin/mysqld_safe  --skip-grant-tables
Run Code Online (Sandbox Code Playgroud)

使用root用户连接到mysql DB

/usr/bin/mysql -uroot -p mysql
Run Code Online (Sandbox Code Playgroud)

更新root权限

update mysql.user
set Select_priv='Y',
    Insert_priv='Y',
    Update_priv='Y',
    Delete_priv='Y',
    Create_priv='Y',
    Drop_priv='Y',
    Reload_priv='Y',
    Shutdown_priv='Y',
    Process_priv='Y',
    File_priv='Y',
    Grant_priv='Y',
    References_priv='Y',
    Index_priv='Y',
    Alter_priv='Y',
    Show_db_priv='Y',
    Super_priv='Y',
    Create_tmp_table_priv='Y',
    Lock_tables_priv='Y',
    Execute_priv='Y',
    Repl_slave_priv='Y',
    Repl_client_priv='Y',
    Create_view_priv='Y',
    Show_view_priv='Y',
    Create_routine_priv='Y',
    Alter_routine_priv='Y',
    Create_user_priv='Y',
    Event_priv='Y',
    Trigger_priv='Y' 
where User='root';
Run Code Online (Sandbox Code Playgroud)

之后,您只需要停止MySQL服务并重新开始.


els*_*hae 2

我感谢大家的反馈,我终于得到了大部分。为了解决这个问题

/etc/init.d/mysql start
Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed!
Run Code Online (Sandbox Code Playgroud)

我做了:

ps aux | grep mysql
Run Code Online (Sandbox Code Playgroud)

这给了我:

root     15265  0.0  0.1   3896  1284 pts/10   S    12:41   0:00 /bin/sh /usr/bin/mysqld_safe
mysql    15302  1.6  2.8 132532 29600 pts/10   Sl   12:41   0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --port=3306 --socket=/var/run/mysqld/mysqld.sock
root     15303  0.0  0.0   3008   608 pts/10   S    12:41   0:00 logger -p daemon.err -t mysqld_safe -i -t mysqld
root     16160  0.0  0.0   3120   708 pts/10   R+   12:42   0:00 grep mysql
Run Code Online (Sandbox Code Playgroud)

然后我做了:

kill -9 15265
kill -9 15302 
Run Code Online (Sandbox Code Playgroud)

之后我就可以使用以下命令启动 MySQL:

/etc/init.d/mysql start
Run Code Online (Sandbox Code Playgroud)

从那里我找到了这篇文章: https: //help.ubuntu.com/community/MysqlPasswordReset对我来说,神奇之处在于:

/usr/sbin/mysqld --skip-grant-tables --skip-networking &
Run Code Online (Sandbox Code Playgroud)

我能够跟踪该线程并且也执行了以下操作:

GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY 'yournewrootpassword' WITH GRANT OPTION;
Run Code Online (Sandbox Code Playgroud)

唯一有点奇怪的是 root 仍然没有权利从 phpMyAdmin 创建数据库以及 root 需要的其他权限。不过,我可以从命令行创建数据库,而且现在我可以接受这一点!

再次感谢大家的宝贵时间和所有帮助!