MySQL 8.0 误删了root用户怎么办
MySQL 8.0 误删了root用户怎么办
修改配置文件
修改配置文件,让其可以无账号登录
默认的文件为: /etc/my.cnf
添加:skip-grant-tables
重启服务
service mysql restart
添加用户信息
use mysql;
添加用户
insert into user(User,authentication_string,ssl_cipher,x509_issuer,x509_subject) values('root','','','','');
添加权限
update user set Host='localhost',select_priv='y', insert_priv='y',update_priv='y',Alter_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',create_user_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' where user='root';commit;
去掉配置文件的内容,重启服务
重新登录,使用root账号,设置密码。
mysql
use mysql;
alter user 'root'@'localhost' identified with mysql_native_password by 'root@12345';
授权远程连接
默认情况下,mysql用户是不允许远程连接访问数据库的,只能在本地访问。
mysql> SHOW DATABASES;
mysql> USE mysql;
mysql> SELECT 'host' FROM user WHERE user='root'; #查看user表的host值
mysql> UPDATE user SET host = '%' WHERE user ='root; #修改host值
mysql> flush privileges; #刷新MySQL的系统权限相关表
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通