mysql不小心删除了root用户
时间: 2023-08-09 15:04:49 浏览: 179
如果你不小心删除了 MySQL 数据库中的 root 用户,可以按照以下步骤进行恢复:
1. 停止 MySQL 服务
```
sudo systemctl stop mysql
```
2. 在 MySQL 配置文件中添加跳过权限检查的配置
```
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
```
在文件末尾添加以下内容:
```
[mysqld]
skip-grant-tables
```
3. 重新启动 MySQL 服务
```
sudo systemctl start mysql
```
4. 使用 root 用户登录 MySQL
```
mysql -u root
```
5. 为 root 用户添加权限
```
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
```
注意:将 `password` 替换为你想要设置的密码。
6. 刷新权限
```
FLUSH PRIVILEGES;
```
7. 移除跳过权限检查的配置
```
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
```
删除 `[mysqld]` 部分中的 `skip-grant-tables`。
8. 重新启动 MySQL 服务
```
sudo systemctl restart mysql
```
这样就可以恢复 MySQL 数据库中的 root 用户。
相关问题
mysql给admin用户root权限
在MySQL中,授予管理员用户root权限是一项非常敏感的操作,因为它允许管理员用户对MySQL服务器进行任何操作,包括创建、更改或删除数据库和表等。因此,我们应该非常小心地执行此操作。
以下是将管理员用户admin授予root权限的步骤:
1. 使用root用户登录到MySQL shell中。
2. 运行以下命令授予管理员用户admin root权限:
```
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
```
这将授予管理员用户admin对所有数据库和所有表的所有权限,并允许他授予其他用户相同的权限。
3. 最后,通过运行以下命令使更改生效:
```
FLUSH PRIVILEGES;
```
这将重新加载权限表并将更改应用于当前会话。
现在,管理员用户admin已经获得了root权限,可以对MySQL服务器进行任何操作。但是,请注意,这是一项非常敏感的操作,因此应该非常小心地执行,并且只应该授予可信用户root权限。
不小心删除了MySQL数据库里面自带的user表该怎么回复,我需要具体流程以及代码操作
如果您不小心删除了 MySQL 数据库中的 `mysql` 数据库中的 `user` 表,可以按照以下步骤进行恢复:
1. 停止 MySQL 服务,以免在恢复 `user` 表时又被覆盖。
2. 找到 MySQL 的安装目录,在命令行中进入到该目录下的 `bin` 文件夹中。
3. 执行以下命令打开 MySQL 命令行:
```
mysql -u root -p
```
如果 MySQL 服务没有设置密码,直接回车即可。否则输入 MySQL 的 root 用户密码。
4. 创建一个新的 `user` 表,执行以下 SQL 语句:
```
CREATE TABLE mysql.user (
Host char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
User char(16) COLLATE utf8_bin NOT NULL DEFAULT '',
Password char(41) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
Select_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
Insert_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
Update_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
Delete_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
Create_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
Drop_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
Reload_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
Shutdown_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
Process_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
File_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
Grant_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
References_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
Index_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
Alter_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
Show_db_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
Super_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
Create_tmp_table_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
Lock_tables_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
Execute_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
Repl_slave_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
Repl_client_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
Create_view_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
Show_view_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
Create_routine_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
Alter_routine_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
Create_user_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
Event_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
Trigger_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
Create_tablespace_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
ssl_type enum('','ANY','X509','SPECIFIED') CHARACTER SET utf8 NOT NULL DEFAULT '',
ssl_cipher blob NOT NULL,
x509_issuer blob NOT NULL,
x509_subject blob NOT NULL,
max_questions int(11) unsigned NOT NULL DEFAULT '0',
max_updates int(11) unsigned NOT NULL DEFAULT '0',
max_connections int(11) unsigned NOT NULL DEFAULT '0',
max_user_connections int(11) unsigned NOT NULL DEFAULT '0',
plugin char(64) COLLATE utf8_bin DEFAULT '',
authentication_string text COLLATE utf8_bin,
password_last_changed timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
password_lifetime smallint(5) unsigned NOT NULL DEFAULT '0',
account_locked enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
Create_role_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
Drop_role_priv enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
Password_expired enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
PRIMARY KEY (Host,User),
KEY user (User)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Users and global privileges';
```
5. 退出 MySQL 命令行,执行以下命令重启 MySQL 服务:
```
net start mysql
```
6. 登录 MySQL 命令行,执行以下命令验证 `user` 表已经恢复:
```
use mysql;
select * from user;
```
以上就是恢复 MySQL 中的 `mysql` 数据库中的 `user` 表的具体流程以及代码操作。