• MySQL WINDOWS下重置root用户密码过程


    昨天另一个项目的小伙伴打来电话,说是他们项目节后准备在MYSQL上做一次数据迁移,打算先在本地WINDOWS上MYSQL测试后,再将整个计划拿来与老外讨论.目前遇到一个很奇葩的事情,原先MYSQL DBA 1个月前离职了,在离职交接中LINUX服务器上的MYSQL文档都发给项目组了,但是一台本地WINDOWS上的MYSQL因为很少有人使用,所以该DBA可能遗忘了交接这个MYSQL的文档.现在小伙伴急着用,所以让我帮忙重置MYSQL ROOT用户的密码. 哥这种半吊子MYSQL DBA也只好赶鸭子上架,在网络上查询资料发现方法大同小异, 多数是通过先SKIP GRANT TABLE,然后在另一DOS下重新登录MYSQL然后更改权限库中的ROOT密码;但是在该机器上测试时发现跳过权限检查后在另一个DOS下登录MYSQL总报错,经过反复测试发现下面的处理流程可用:

        1. 先用DOS命令' net stop mysql'关闭MYSQL服务,如果DOS命令不能使用则要先去环境变量中加入类似‘;%SystemRoot%system32‘这类参数.

        2. 在DOS下切换到MYSQL安装文件的BIN文件夹下,输入命令'mysqld --skip-grant-tables',注意,输入此命令后,正常情况下应为光标停止于下一行,如果DOS界面有提示信息则按信息提示进行处理.我遇到的情况是MYSQL安装文件夹下面DATA文件夹丢失,可能是因为误操作或者MYSQL升级成5.7所导致,所以使用SKIP命令会遇到问题,导致后面登录MYSQL失败.第一次发现该问题时,我首先手动分配了一个data的文件夹(手动分配会导致其他问题,在后面会详细描述).此时使用SKIP命令正常.

        3. 这时我们需新打开一个DOS窗口,因为上一步输入SKIP命令后光标停止了,我们新打开DOS窗口,然后切换到MYSQL安装文件夹BIN目录下,输入MYSQL命令访问MYSQL.此时无需输入密码.

        4.登录MYSQL成功后,我们输入'USE MYSQL‘命令访问系统权限数据库.注意:在这里会遇到第二个问题,因为在第二步我第一次处理时选择手动分配DATA文件夹,所以系统中并没有权限数据库'mysql',有考虑使用5.7之前版本的data文件但是觉得不靠谱,后来搜索资料后发现这种现象大多数是因为MYSQL升级导致的,使用以下命令,系统会自动创建data file及一些缺失的系统数据库:

        mysqld --initialize-insecure --user=mysql

        按照资料说法,初始化之后其实系统会建好默认数据库后默认将ROOT密码设置为空,但是我们已经到这一步了,还是继续尝试正常的修改ROOT 密码流程吧.

        5. 用常规UPDATE语句去更新MYSQL USER表中ROOT的密码即可:

       update mysql.user set authentication_string=password('123456') where user='root' and Host ='localhost';

        注意,MYSQL5.7之后USER 表中PASSWORD字段更改为authentication_string,所以这里我们使用authentication_string.

        6.更新成功之后是第三个要注意的地方,在MYSQL命令行输入 ' flush privileges',通知系统权限方面的改变.

        7.最后退出,重启,发现修改成功.

  • 相关阅读:
    20220424 Java核心技术 卷2 高级特性 4
    20220424 Java核心技术 卷2 高级特性 12
    20220424 Java核心技术 卷2 高级特性 2
    20220424 Java核心技术 卷2 高级特性 1
    20220424 Java核心技术 卷2 高级特性 5
    20220424 Java核心技术 卷2 高级特性 6
    多个modal遮罩层覆盖不全的问题
    ROCRK3588SPC八核8K人工智能开源主板
    RK3568行业平板人脸识别解决方案
    K8S中pod和container的资源管理:CPU和Memory
  • 原文地址:https://www.cnblogs.com/WZH75171992/p/8460736.html
Copyright © 2020-2023  润新知