当前位置: 首页 > news >正文

【mysql】常用操作:维护用户/开启远程/忘记密码/常用命令

一、维护用户

1.1 创建用户

-- 语法
> CREATE USER '[username]'@'[host]' IDENTIFIED BY '[password]';-- 例子:
-- 添加用户user007,密码123456,并且只能在本地可以登录
> CREATE USER 'user007'@'localhost' IDENTIFIED BY '123456';
-- 添加用户user007,密码123456,并且可以从任意远程主机登录
> CREATE USER 'user007'@'%' IDENTIFIED BY '123456';

1.2 删除用户

-- 语法
> DROP USER '[username]'@'[host]';-- 例子:
-- 删除从本地登录的账户user007
> DROP USER 'user007'@'localhost';
-- 删除从任意主机登录的账户user007
> DROP USER 'user007'@'%';

1.3 授权

-- 语法
> GRANT [privileges] ON [databasename].[tablename] TO '[username]'@'[host]'
-- privileges: SELECT,INSERT,UPDATE-- 例子:
-- 给从本地主机访问的user007添加指定权限:select, insert
> GRANT SELECT,INSERT ON db_demo.* TO 'user007'@'localhost';
-- 给从任意主机访问的user007添加所有权限
> GRANT ALL ON *.* TO 'user007'@'%';

用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:

-- 语法
> GRANT [privileges] ON [databasename].[tablename] TO '[username]'@'[host]' WITH GRANT OPTION;-- 例子
-- 给从本地主机访问的user007添加指定权限:select, insert,并且user007可以给别的用户授权
> GRANT SELECT,INSERT ON db_demo.* TO 'user007'@'localhost' WITH GRANT OPTION;

1.4 检验授权信息

-- 查看所有授权
> SHOW GRANTS;-- 查看指定人/机授权:查看从本地登录的用户user007的授权
> SHOW GRANTS FOR 'user007'@'localhost';-- 查看指定人授权:查看从任意主机登录的用户user007的授权
> SHOW GRANTS FOR 'user007'@'%';

 1.4 撤销授权

-- 语法
> REVOKE [privileges] ON [databasename].[tablename] FROM '[username]'@'[host]';-- 例子:
-- 撤销从本地登录的user007在数据库demo上的select和insert授权
> REVOKE SELECT,INSERT ON db_demo.* FROM 'user007'@'localhost';
-- 撤销从任意主机登录的user007的所有授权
> REVOKE ALL ON *.* FROM 'user007'@'%';

这里需要注意,撤销授权必须跟授权命令匹配,否则不能撤销。

-- 授权
GRANT SELECT,INSERT ON db_demo.* TO 'user007'@'localhost';
-- 对应的撤销授权
REVOKE SELECT,INSERT ON db_demo.* FROM 'user007'@'localhost';-- 授权
GRANT ALL ON *.* TO 'user007'@'%';
-- 对应的撤销授权
REVOKE ALL ON *.* FROM 'user007'@'%';

1.5 修改密码

-- 语法
> SET PASSWORD FOR '[username]'@'[host]' = PASSWORD('[newpassword]');-- 例子
-- 修改当前用户的密码为 12345678
> SET PASSWORD = PASSWORD("12345678");

 二、开启远程

开启远程需要注意端口安全,以下场景可以考虑开启远程:

  • 内网可访问,比如web应用需要访问时,把web服务器和mysql服务器置于同一内网网段
  • 测试服务器
  • 修改端口并且设置远程访问用户

开启远程其实就是基于1.3的授权。

2.1 查询授权

mysql> use mysql;
mysql> select User,authentication_string,Host from `user`;

2.2 开启远程

-- 开启root可以远程访问,并且访问密码是 123456
mysql> grant all privileges on *.* to 'root'@'%' IDENTIFIED BY '123456';-- 修改完记得重新加载权限数据
mysql> flush privileges;

2.3 验证授权

mysql> use mysql;
mysql> select User,authentication_string,Host from `user`;

三、忘记密码

当忘记密码的时候,我们需要跳过权限验证进行登录,然后修改密码。

3.1 如果是CentOS7

3.1.1 停止服务

> sudo systemctl stop mysqld

3.1.2 修改服务配置跳过权限验证

> vi /usr/lib/systemd/system/mysqld.service

打开mysql的服务文件,编辑运行主服务那一行:

ExecStart=/usr/bin/mysqld_safe --basedir=/usr

添加 --skip-grant-tables

ExecStart=/usr/bin/mysqld_safe --basedir=/usr --skip-grant-tables

3.1.3 重启服务

# 重新加载修改的服务文件
> sudo systemctl daemon-reload# 启动MySQL服务
> sudo systemctl start mysqld

3.1.4 登录mysql

> mysql -uroot -p

运行命令后直接进入mysql,无需密码。

3.1.5 修改密码

# 修改从本地登录的root账号的密码为123456
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';# 刷新权限
mysql> flush privileges;

3.1.6 移除跳过权限验证的参数

这是为了还原#3.1.2步的操作,移除增加的参数:

> vi /usr/lib/systemd/system/mysqld.service

打开mysql的服务文件,编辑运行主服务那一行:

ExecStart=/usr/bin/mysqld_safe --basedir=/usr --skip-grant-tables

移除 --skip-grant-tables

ExecStart=/usr/bin/mysqld_safe --basedir=/usr

3.1.7 重新登录

> mysql -uroot -p

此时提示需要密码,输入 123456后登录mysql:

3.2 如果是CentOS6

3.2.1 停止服务

# 方式1
> /etc/init.d/mysql stop   # 方式2
> service mysqld stop

3.2.2 无需权限启动mysql

> /usr/bin/mysqld_safe --skip-grant-tables&

 也是  --skip-grant-tables 这个参数。

3.2.3 登录mysql

# 方式1
> mysql # 方式2
> mysql -uroot -p

运行命令后直接进入mysql,无需密码。

 3.2.4 修改密码

# 切换到数据库 mysql 
mysql> use mysql# 修改root账号的密码为123456
mysql> update user set password=password("123456") where user="root";# 刷新权限
mysql> flush privileges;

3.2.5 重启服务

在3.2.2中我们以无权限的方式启动mysql,需要重启以正常方式启动:

# 杀死无权限启动服务
> sudo killall mysqld_safe&# 正常启动mysql
> /etc/init.d/mysql start

 3.2.6 重新登录

> mysql -uroot -p

此时提示需要密码,输入 123456后登录mysql:

 四、常用命令

-- 查看视图:
show table status where comment='view';-- 查看存储过程:
show procedure status;-- 查看进程:
show full processlist;

 

相关文章:

【mysql】常用操作:维护用户/开启远程/忘记密码/常用命令

一、维护用户 1.1 创建用户 -- 语法 > CREATE USER [username][host] IDENTIFIED BY [password];-- 例子: -- 添加用户user007,密码123456,并且只能在本地可以登录 > CREATE USER user007localhost IDENTIFIED BY 123456; -- 添加用户…...

引领AI新时代:深度学习与大模型的关键技术

文章目录 📑前言一、内容概述二、作者简介三、书籍特色四、学习平台与资源 📑前言 在数字化浪潮席卷全球的今天,人工智能(AI)和深度学习技术已经渗透到我们生活的方方面面。从智能手机中的智能语音助手,到…...

STL——常用算法(二)

一、常用拷贝和替换算法 1.copy #include <iostream> #include <vector> #include <algorithm> using namespace std; void printVector(int val) {cout << val << " "; } void test01() {vector<int>v1;for (int i 0; i <…...

MyCAT 2 底层原理

MyCAT 2 底层原理 1. MyCAT 2 架构概述 MyCAT 2 是一款开源的数据库中间件&#xff0c;它通过分库分表、读写分离、动态路由等机制提升数据库系统的性能和扩展性。MyCAT 2 的架构设计灵活&#xff0c;适用于多种数据库类型&#xff0c;包括 MySQL、PostgreSQL 和 SQL Server …...

操作系统实训复习笔记(第7关:生产者消费者问题实践)

目录 第7关&#xff1a;生产者消费者问题实践 第1关&#xff1a;生产者消费者问题实践 1、在主线程中初始化锁为解锁状态 2、访问对象时的加锁操作与解锁操作 3、&#xff08;生产和消费进程操作后&#xff09;信号量操作实现进程同步 4、先等待&#xff08;生产还是消费…...

通过物联网管理多台MQTT设备-基于全志T527开发板

一、系统概述 基于米尔-全志 T527设计一个简易的物联网网关&#xff0c;该网关能够管理多台MQTT设备&#xff0c;通过MQTT协议对设备进行读写操作&#xff0c;同时提供HTTP接口&#xff0c;允许用户通过HTTP协议与网关进行交互&#xff0c;并对设备进行读写操作。 二、系统架…...

Python学习前简介

1.python简介 2.python特点 3.python解释器 4.pyCharm简介 一、python简介 Python是一种高级编程语言&#xff0c;用于多种应用&#xff0c;包括网站开发、数据科学、人工智能、机器学习、桌面应用、网络应用、软件开发、网络爬虫等。它由Guido van Rossum于1991年首次发布&am…...

【Text2SQL 论文】MAGIC:为 Text2SQL 任务自动生成 self-correction guideline

论文&#xff1a;MAGIC: Generating Self-Correction Guideline for In-Context Text-to-SQL ⭐⭐⭐ 莱顿大学 & Microsoft, arXiv:2406.12692 一、论文速读 DIN-SQL 模型中使用了一个 self-correction 模块&#xff0c;他把 LLM 直接生成的 SQL 带上一些 guidelines 的 p…...

2024 年 8 款最佳建筑 3D 渲染软件

你现在使用的3D 渲染软件真得适合你吗&#xff1f; 在建筑和室内渲染当中&#xff0c;市面上有许多3D渲染软件可供选择。然而&#xff0c;并不是每款软件都适合你的需求。本指南将重点介绍2024年精选的8款最佳建筑3D渲染软件&#xff0c;帮助你了解不同的选项&#xff0c;并选…...

MAB规范(3):Chapter6 Glossary 术语表

第6章 - 术语表 此章不做过多的批注&#xff0c;都是些简单的术语解释。...

40python数据分析numpy基础之diag处理矩阵对角线元素

1 python数据分析numpy基础之diag处理矩阵对角线元素 python的numpy库的diag(v,k0)函数&#xff0c;以一维数组的形式返回方阵的对角线元素&#xff0c;或将一维数组转换为方阵&#xff08;非对角线元素为0&#xff09;。 方阵&#xff1a;方形矩阵&#xff0c;行数和列数相等…...

ffmpeg+nginx+video实现rtsp流转hls流,web页面播放

项目场景&#xff1a; 最近调试海康摄像头需要将rtsp流在html页面播放,因为不想去折腾推拉流&#xff0c;所以我选择ffmpeg转hls流&#xff0c;nginx转发&#xff0c;html直接访问就好了 1.首先要下载nginx和ffmpeg 附上下载地址&#xff1a; nginx nginx news ffmpeg htt…...

1、Redis系列-Redis高性能原理详解

Redis高性能原理详解 Redis是一款高性能的内存数据库&#xff0c;广泛应用于需要快速读写访问的数据密集型应用中。它的高性能得益于多方面的设计和优化。以下是Redis高性能实现的详细解释&#xff1a; 1. 单线程架构 Redis采用单线程架构来处理客户端请求&#xff0c;这与传…...

18.枚举

学习知识&#xff1a;枚举类型、相关的使用方法 Main.java&#xff1a; public class Main {public static void main(String[] args) {myenum[] colorlist myenum.values();//获取枚举中所有对象的引用数组for (myenum one : colorlist){System.out.println(one.toString(…...

全省高等职业学校大数据技术专业建设暨专业质量监测研讨活动顺利开展

6月21日&#xff0c;省教育评估院在四川邮电职业技术学院组织开展全省高等职业学校大数据技术专业建设暨专业质量监测研讨活动。省教育评估院副院长赖长春&#xff0c;四川邮电职业技术学院党委副书记、校长冯远洪&#xff0c;四川邮电职业技术学院党委委员、副校长程德杰等出席…...

2-16 基于matlab的动载荷简支梁模态分析程序

基于matlab的动载荷简支梁模态分析程序&#xff0c;可调节简支梁参数&#xff0c;包括截面宽、截面高、梁长度、截面惯性矩、弹性模量、密度。输出前四阶固有频率&#xff0c;任意时刻、位置的响应结果。程序已调通&#xff0c;可直接运行。 2-16 matlab 动载荷简支梁模态分析 …...

AI大模型的核心

前言 没错&#xff0c;AI大模型的核心成功因素通常可以归结为三大要素&#xff1a;大数据、大算力和强算法。这三个因素相辅相成&#xff0c;共同推动了现代人工智能技术的发展。 1. 大数据 • 定义&#xff1a;指的是涵盖广泛领域的海量数据&#xff0c;包括文本、图像、音…...

【Android面试八股文】ViewHolder为什么要被声明成静态内部类?

文章目录 ViewHolder为什么要被声明成静态内部类?1. 避免隐式引用导致的内存泄漏2. 提高性能3. 代码可读性和维护性实例代码总结ViewHolder为什么要被声明成静态内部类? 将 ViewHolder 声明为静态内部类有几个重要的原因,这样做可以提高性能并避免潜在的内存泄漏。下面是详…...

Android 11 系统OTA升级到旧版本(去除升级时间戳校验)

简介 由于客户要求能够通过OTA升级到旧版本因此探寻反向升级的方法。 方法一&#xff1a;进入recover模式 adb reboot recovery 点击Apply update from SD card 然后选择以前的OTA升级包就可以了。这种方式实测可以升级到旧的版本。但是我们的客户是通过在线升级软件进行更新…...

更新表的统计信息并清空缓存--DM8达梦数据库

更新表的统计信息并清空缓存--DM8达梦数据库 环境介绍1 收集 <表> 上所有对象信息&#xff0c;含索引2 清理缓存的执行计划3 达梦数据库学习使用列表 环境介绍 在某些环境刚完成数据迁移, 10万行以上大表数据量有修改1/3 ,查询条件已经创建索引,执行计划不好,或执行计划…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

C# 表达式和运算符(求值顺序)

求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如&#xff0c;已知表达式3*52&#xff0c;依照子表达式的求值顺序&#xff0c;有两种可能的结果&#xff0c;如图9-3所示。 如果乘法先执行&#xff0c;结果是17。如果5…...

永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器

一、原理介绍 传统滑模观测器采用如下结构&#xff1a; 传统SMO中LPF会带来相位延迟和幅值衰减&#xff0c;并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF)&#xff0c;可以去除高次谐波&#xff0c;并且不用相位补偿就可以获得一个误差较小的转子位…...

Windows电脑能装鸿蒙吗_Windows电脑体验鸿蒙电脑操作系统教程

鸿蒙电脑版操作系统来了&#xff0c;很多小伙伴想体验鸿蒙电脑版操作系统&#xff0c;可惜&#xff0c;鸿蒙系统并不支持你正在使用的传统的电脑来安装。不过可以通过可以使用华为官方提供的虚拟机&#xff0c;来体验大家心心念念的鸿蒙系统啦&#xff01;注意&#xff1a;虚拟…...

JDK 17 序列化是怎么回事

如何序列化&#xff1f;其实很简单&#xff0c;就是根据每个类型&#xff0c;用工厂类调用。逐个完成。 没什么漂亮的代码&#xff0c;只有有效、稳定的代码。 代码中调用toJson toJson 代码 mapper.writeValueAsString ObjectMapper DefaultSerializerProvider 一堆实…...

海云安高敏捷信创白盒SCAP入选《中国网络安全细分领域产品名录》

近日&#xff0c;嘶吼安全产业研究院发布《中国网络安全细分领域产品名录》&#xff0c;海云安高敏捷信创白盒&#xff08;SCAP&#xff09;成功入选软件供应链安全领域产品名录。 在数字化转型加速的今天&#xff0c;网络安全已成为企业生存与发展的核心基石&#xff0c;为了解…...