【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 是一款开源的数据库中间件,它通过分库分表、读写分离、动态路由等机制提升数据库系统的性能和扩展性。MyCAT 2 的架构设计灵活,适用于多种数据库类型,包括 MySQL、PostgreSQL 和 SQL Server …...

操作系统实训复习笔记(第7关:生产者消费者问题实践)
目录 第7关:生产者消费者问题实践 第1关:生产者消费者问题实践 1、在主线程中初始化锁为解锁状态 2、访问对象时的加锁操作与解锁操作 3、(生产和消费进程操作后)信号量操作实现进程同步 4、先等待(生产还是消费…...
通过物联网管理多台MQTT设备-基于全志T527开发板
一、系统概述 基于米尔-全志 T527设计一个简易的物联网网关,该网关能够管理多台MQTT设备,通过MQTT协议对设备进行读写操作,同时提供HTTP接口,允许用户通过HTTP协议与网关进行交互,并对设备进行读写操作。 二、系统架…...
Python学习前简介
1.python简介 2.python特点 3.python解释器 4.pyCharm简介 一、python简介 Python是一种高级编程语言,用于多种应用,包括网站开发、数据科学、人工智能、机器学习、桌面应用、网络应用、软件开发、网络爬虫等。它由Guido van Rossum于1991年首次发布&am…...

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

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

MAB规范(3):Chapter6 Glossary 术语表
第6章 - 术语表 此章不做过多的批注,都是些简单的术语解释。...
40python数据分析numpy基础之diag处理矩阵对角线元素
1 python数据分析numpy基础之diag处理矩阵对角线元素 python的numpy库的diag(v,k0)函数,以一维数组的形式返回方阵的对角线元素,或将一维数组转换为方阵(非对角线元素为0)。 方阵:方形矩阵,行数和列数相等…...

ffmpeg+nginx+video实现rtsp流转hls流,web页面播放
项目场景: 最近调试海康摄像头需要将rtsp流在html页面播放,因为不想去折腾推拉流,所以我选择ffmpeg转hls流,nginx转发,html直接访问就好了 1.首先要下载nginx和ffmpeg 附上下载地址: nginx nginx news ffmpeg htt…...
1、Redis系列-Redis高性能原理详解
Redis高性能原理详解 Redis是一款高性能的内存数据库,广泛应用于需要快速读写访问的数据密集型应用中。它的高性能得益于多方面的设计和优化。以下是Redis高性能实现的详细解释: 1. 单线程架构 Redis采用单线程架构来处理客户端请求,这与传…...

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

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

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

AI大模型的核心
前言 没错,AI大模型的核心成功因素通常可以归结为三大要素:大数据、大算力和强算法。这三个因素相辅相成,共同推动了现代人工智能技术的发展。 1. 大数据 • 定义:指的是涵盖广泛领域的海量数据,包括文本、图像、音…...
【Android面试八股文】ViewHolder为什么要被声明成静态内部类?
文章目录 ViewHolder为什么要被声明成静态内部类?1. 避免隐式引用导致的内存泄漏2. 提高性能3. 代码可读性和维护性实例代码总结ViewHolder为什么要被声明成静态内部类? 将 ViewHolder 声明为静态内部类有几个重要的原因,这样做可以提高性能并避免潜在的内存泄漏。下面是详…...
Android 11 系统OTA升级到旧版本(去除升级时间戳校验)
简介 由于客户要求能够通过OTA升级到旧版本因此探寻反向升级的方法。 方法一:进入recover模式 adb reboot recovery 点击Apply update from SD card 然后选择以前的OTA升级包就可以了。这种方式实测可以升级到旧的版本。但是我们的客户是通过在线升级软件进行更新…...
更新表的统计信息并清空缓存--DM8达梦数据库
更新表的统计信息并清空缓存--DM8达梦数据库 环境介绍1 收集 <表> 上所有对象信息,含索引2 清理缓存的执行计划3 达梦数据库学习使用列表 环境介绍 在某些环境刚完成数据迁移, 10万行以上大表数据量有修改1/3 ,查询条件已经创建索引,执行计划不好,或执行计划…...

idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...

Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能
1. 开发环境准备 安装DevEco Studio 3.1: 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK 项目配置: // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...

给网站添加live2d看板娘
给网站添加live2d看板娘 参考文献: stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下,文章也主…...