1. 查找本地mysql的配置文件my.cnf或者my.ini。在配置文件中添加下面的属性:忽略安全校验

skip-grant-tables

2. 重启mysql服务

systemctl restart mysqld

3. 进入mysql,输入以下命令,可以直接进入mysql

mysql -uroot -p

4. 进入到mysql后,切换databases

use mysql;

5. 如果确信mysql密码没有问题,那么查看user表中是否存在root用户

select user,host from user;

6. 如果没有root用户,则创建用户,并赋权。参考下面的文章

insert into user(User,authentication_string,ssl_cipher,x509_issuer,x509_subject) values('root','','','','');


update user set Host='%',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;
 

7. 修改后,flush privileges;刷新下权限,然后退出

8. 重新使用mysql -uroot -p 登录

使用自己设置的密码登录。如果无法登录,则不输入密码,直接回车

9. 修改密码

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '我的密码';
flush privileges;

如果在启动mysql时,无法启动服务 ,则使用systemctl status mysqld 查看具体问题,一般都会显示。如果是Permission denied 权限问题,那么找到mysql 的安装位置,一般是/var/lib/mysql,查看是否有的文件用户和用户组不属于mysql,那么需要将文件权限都改为mysql

chown -R mysql:mysql ./* 

参考文章:Linux安装完mysql8.0+后解决密码丢失,user表没有root用户以及授权设置密码失败等问题_select user,host from user; 没有root-CSDN博客

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐