当前位置: 首页 > 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 ,查询条件已经创建索引,执行计划不好,或执行计划…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程&#xff1a;&#xff08;白话解释&#xff09; 我们将原始待发送的消息称为 M M M&#xff0c;依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)&#xff08;意思就是 G &#xff08; x ) G&#xff08;x) G&#xff08;x) 是已知的&#xff09;&#xff0…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...