mysql 社区版密码如何修改_如何用优雅的方法修改MySQL root密码

搭噶好,我系小编,我好久没发文章了啊,今天发文章的原因是,我竟然忘了我的MySQL root密码。。本来想找RAKsmart客服直接重置啥的,后来想想还是自己搞吧,还能长知识。

84ce1627ebdc64aaae3a7ef4b5b48b98.png

然后,我发现一个事情,,大家都是用的-skip-grant-tables方法,搜各种浏览器都是显示的这种,下面我们就看一下这种方法,大家不要着急哈,先说的常规的方法,下面才是优雅的方法!

常规skip-grant-tables的方法:

首先,关闭实例

这里,只能通过kill mysqld进程的方式。

注意:不是mysqld_safe进程,也切忌使用kill -9。

e82d68dcaed9ea56a942dbbc217fbb6c.png

如何用优雅的方法修改MySQL root密码

设置了该参数,则实例在启动过程中会跳过权限表的加载,这就意味着任何用户都能登录进来,并进行任何操作,相当不安全。

建议同时添加--skip-networking参数。其会让实例关闭监听端口,自然也就无法建立TCP连接,而只能通过本地socket进行连接。

MySQL8.0就是这么做的,在设置了--skip-grant-tables参数的同时会自动开启--skip-networking。

修改密码

fbaada1ebc17f6702c73f6a5df9e9e45.png

注意:

这里的update语句针对的是MySQL 5.7的操作,如果是在5.6版本,修改的应该是password字段,而不是authentication_string。

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

而在MySQL 8.0.11版本中,这种方式基本不可行,因为其已移除了PASSWORD()函数及不再支持SET PASSWORD ... = PASSWORD (''auth_string'')语法。

不难发现,这种方式的可移植性实在太差,三个不同的版本,就先后经历了列名的改变,及命令的不可用。

下面,介绍另外一种更通用的做法,还是在skip-grant-tables的基础上。

与上面不同的是,其会先通过flush privileges操作触发权限表的加载,再使用alter user语句修改root用户的密码,如:

193d21a21ad62c0066653e491f69f31b.png

免密码登录进来后,直接执行alter user操作是不行的,因为此时的权限表还没加载。可先通过flush privileges操作触发权限表的加载,再执行alter user操作。

需要注意的是,通过alter user修改密码只适用于MySQL5.7和8.0,如果是MySQL 5.6,此处可写成

最后重启实例

mysql> shutdown;

# bin/mysqld_safe --defaults-file=my.cnf &

需要注意的是,如果在启动的过程中没有指定--skip-networking参数,无需重启实例。但在网上看到的绝大多数方案,都是没有指定该参数,但重启了实例,实在没有必要。

下面对这个方案做个总结:

1. 如果只添加了--skip-grant-tables,修改完密码后,其实无需重启,执行flush privileges即可。

2. 从安全角度出发,建议加上--skip-networking。但因其是静态参数,将其剔除掉需要重启实例。

3. 加上--skip-networking,虽然可以屏蔽掉TCP连接,但对于本地其它用户,只要有socket文件的可读权限,都能无密码登录。还是存在安全隐患。

4. 不建议通过update的方式修改密码,更通用的其实是alter user。

更优雅的解法

相对于skip-grant-tables方案,我们来看看另外一种更优雅的解法,其只会重启一次,且基本上不存在安全隐患。

首先,依旧是关闭实例

其次,创建一个sql文件

写上密码修改语句

# vim init.sql

alter user ''root''@''localhost'' identified by ''123456'';

最后,使用--init-file参数,启动实例

# bin/mysqld_safe --defaults-file=my.cnf --init-file=/usr/local/mysql57/init.sql &

实例启动成功后,密码即修改完毕~

如果mysql实例是通过服务脚本来管理的,除了创建sql文件,整个操作可简化为一步。

# service mysqld restart --init-file=/usr/local/mysql57/init.sql

注意:该操作只适用于/etc/init.d/mysqld这种服务管理方式,不适用于RHEL 7新推出的systemd。

好了,没想到修改MySQL root密码还能变得优雅,敲代码是不是也能,希望我以后不会秃顶吧,大家明天见!

文章来源于: 美国主机评论,版权归原作者所有,如有侵权,请联系 guanwang@163yun.com 删除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/567318.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python全局变量赋值_Python全局变量和局部变量

python中,对于变量作用域的规定有些不一样。在诸如C/C、java等编程语言中,默认在函数的内部是能够直接訪问在函数外定义的全局变量的,可是这一点在python中就会有问题。以下是一个样例。test.py:#!/usr/bin/pythonCOUNT1def func():COUNT CO…

mysql dos入门_在dos上操作mysql的基本?

2安装:A,双击运行“mysql-5.5.27-win32.msi”B,MySQL安装向导启动C,按“Next”继续3配置:MySQL是现在流行的关系数据库中其中的一种,相比其它的数据库管理系统(DBMS)来说,MySQL具有小巧、功能齐全、查询迅捷等优点。MySQL 主要目标是快速、健…

python读取api接口频率_Python基础(API接口测试)

importflask,json,pymysqlfrom flask importrequest, jsonify, Responsefrom datetime importdatetimefrom flask_cors importCORSdbpymysql.Connect(hostlocalhost,port3306,userroot,passwd24576946,dbschool,)cursordb.cursor()server flask.Flask(__name__)#允许跨域访问CO…

mysql初始化脚本建表_mysql新建表修改表sql脚本

新建表语句:-- ------------------------------------------------- 全量脚本-- ------------------------------------------------- 创建表 compet_info(大赛信息)的当前表SELECT Create Table compet_info-大赛信息...;DROP TABLE IF EXISTS compet_info;CREATE …

中countif函数_Count系列函数-Count、Counta、Countblank、Countif、Countifs

统计函数在我们的日常工作中也会经常使用。常见的有Count、Counta、Countblank、Countif、Countifs五个。Count用于统计数据类型的单元格个数,Counta用于统计非空单元格的个数,Countblank用于统计空单元格的个数,而Countif、Countifs用于条件…

labview实例_手把手以实例教你学LabVIEW编程,条件结构编程方法

LabVIEW又称为G语言,简单易学、形象直观,采用图形化的编程方式,是专为测试、测量和控制应用而设计的系统工程软件。在上篇文章(请参考:顺序结构编程)中已经讲了顺序结构的编程方法,下面通过具体例子演示条件结构的编程…

mysql数据变化通通知机制_深入理解Notification机制

先贴上这些源码里面相关的文件:framework/base/core/java/android/app/NotificationManager.javaframework/base/services/java/com/android/server/NotificationManagerService.java{hide} extends INotificationManager.Stubframework/base/services/java/com/and…

python与h5结合实例_使用h5py合并所有h5文件

您需要的是文件中所有数据集的列表。我认为这里需要的是recursive function的概念。这将允许您从一个组中提取所有的“数据集”,但是当其中一个看起来是组本身时,递归地执行相同的操作,直到找到所有数据集为止。例如:/|- dataset1…

vfp 调用 mysql uft-8 connstring_(最全的数据库连接字符串)connectionstring

PS:如果不是太稳定的数据库,最好使用connection lifetime10来限制连接池内连接的生存日期Standard Security:"Driver{SQL Server};ServerAron1;Databasepubs;Uidsa;Pwdasdasd;"Trusted connection:"Driver{SQL Server};ServerAron1;Databasepubs;Tru…

python3ide手机端怎么样_各大Python IDE的优缺点,看看哪种最适合你?

写 Python 代码最好的方式莫过于使用集成开发环境(IDE)了。它们不仅能使你的工作更加简单、更具逻辑性,还能够提升编程体验和效率。每个人都知道这一点。而问题在于,如何从众多选项中选择最好的 Python 开发环境。初级开发者往往面临这个问题。本文将概述…

八大算法python实现_python实现协同过滤推荐算法完整代码示例

测试数据协同过滤推荐算法主要分为:1、基于用户。根据相邻用户,预测当前用户没有偏好的未涉及物品,计算得到一个排序的物品列表进行推荐2、基于物品。如喜欢物品A的用户都喜欢物品C,那么可以知道物品A与物品C的相似度很高&#xf…

用递归与分治策略求解网球循环赛日程表_算法设计:分治法(比赛日程安排)...

一、算法思路1、思路分治算法的思想是:对于一个规模位N的问题,若该问题可以容易解决(比如规模N较小),则直接解决,否则将其分解为M个规模较小的子问题,这些子问题互相独立,并且与原问题形式相同,…

python请编写程序、生成随机密码_利用Python如何生成随机密码

本位实例为大家分享了Python生成随机密码的实现过程,供大家参考,具体内容如下写了个程序,主要是用来检测MySQL数据库的空密码和弱密码的,在这里,定义了三类弱密码:1. 连续数字,譬如123456&#…

centos6.5装mysql好难_centos 6.5装mysql5.7

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼报错er-5.7.17-1.el7.i686 需要--> 处理依赖关系 libc.so.6(GLIBC_2.17),它被软件包 mysql-community-server-5.7.17-1.el7.i686 需要--> 完成依赖关系计算错误:Package: mysql-community-client-5.7.…

聚类算法 距离矩阵_谱聚类

比起传统的K-means算法,谱聚类对数据分布的适应性更强,计算量也要小很多。1. 谱聚类概述谱聚类是从图论中演化出来,主要思想是吧所有的数据看作空间中的点,这些点之间可以用边连接起来。距离较远的两个点之间的边权重值较低&#…

core mysql 延迟加载_mybatis延迟加载及实例讲解

延迟加载基本概念上面我们已经知道使用association、collection可以实现一对一及一对多映射,association、collection还有另外一个延迟加载的功能。延迟加载(lazy load)是关联对象默认的加载方式,延迟加载机制是为了避免一些无谓的性能开销而提出来的&am…

mysql忘记i密码_Mysql忘记密码处理过程

最近项目用到了Mysql,项目里面没有运维人员,项目经理吩咐我在Linux下搭基础环境,其中遇到各种坑,现在记录一下,方便以后使用。以下内容是从网上摘抄过了的,若有侵权,请联系本人删除。1.mysql5.7…

vlan划分不能上网_VLAN工作原理

什么是VLANVLAN(Virtual LAN),翻译成中文是“虚拟局域网”。可以看做是在一个物理局域网络上搭建出几个逻辑上分离的几个局域网。举个例子来说,如果一个交换机划分为两个VLAN,则相当于这台交换机逻辑上划分为两个交换机。VLAN的一个简单直观说…

mysql查询条件是小数 查不到6.28_28.mysql数据库之查询

1.查询语句mysql 多表关系 查询语句 索引1.添加数据补充:将一个查询结果插入到另一张表中create table student(name char(10),gender int);insert into student values("jack",1);insert into student values("rose",0);create table student_man(name ch…

控制for each循环次数_CCF CSP编程题解201312-1:出现次数最多的数

试题编号:201312-1试题名称:出现次数最多的数时间限制:1.0s内存限制:256.0MB问题描述:给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。输入格式:输入的第一行只有一…