Mysql之Root密码重置过程描述

引言: Mysql是我们经常使用的数据库,偶尔也会忘记Mysql的root密码,那该如何重置呢?本文将简要总结其过程。

1.  环境介绍

   Mysql 5.7, 或者 Mariadb对应的10.x版本等,当前可以正常登陆到服务器上,笔者所使用的服务器OS为Centos 7.2, 数据库为mariadb

2. 修复步骤

   2.1  查找mysqlsafe的进程,并kill掉该进程

         >>> ps -ef | grep mysql

        从结果中,可以看到mysqld_safe的进程id

        尝试kill其进程, kill 4605. 

        如果顺利kill掉进程就可以继续下一步,如果kill不掉进程,即重新查询之时,其依然存在,则只能先停掉mysql数据库

        >>> systemctl stop mariadb

  

   2.2  启动mysqd_safe进程

        >> mysqld_safe --skip-grant-tables &

        

       从结果中,可以发现进程已经正常启动了。

  2.3  登陆mysql,无需输入密码,直接点击回车即可

       >>  mysql -u root -p 

         当其提示输入密码之时,直接回车确认即可登录mysql数据库。

        >>  use mysql

        >> update user set password=PASSWORD('123456') where user='root'

        >>  flush privileges;

       

     2.4 没有授权给特定用户特定数据库的远程访问权限时的问题

        如果你没有设置远程登陆的权限, 你将会看到如下错误信息:

       

      2.5 创建数据库

        >> create database crawler default charset utf8 collate utf8_general_ci;

      2.6 对于特定用户授予权限

        >> grant all privileges on `databasename`.* to 'username'@'%' identified by '1234567';

        >>  flush privileges;

        

      2.7 查看当前用户是否可以进行远程访问

        >>  use mysql;

        >>  select Host, User from user;

        

        如果不是的话,可以基于如下SQL进行更新设置:

        >>  update user set host = '%' where user = 'username'

 

3. MySQL 8.0下的问题总结

    问题1:   按照正常安装MySQL 8.0之后,进行连接,出现如下问题

解决办法,重置一下密码:

 >  ALTER USER 'bladestone'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

注意这里的是 with mysql_native_password, 使用native mysql认证方式。

 

4. 总结

     经常发生的事情记录下来就是最好的练习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值