【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;

 

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

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

相关文章

一文搞懂Linux信号【下】

目录 🚩引言 🚩阻塞信号 🚩信号保存 🚩信号捕捉 🚩操作信号集 1.信号集操作函数 2.其它操作函数 🚩总结: 🚩引言 在观看本博客之前,建议大家先看一文搞懂Linux信…

Star、Star求Star

本章是介绍博主自己的一个小工具的。使用的PythonPyQt5开发的。顺带来求一波star🌟🌟!!! 地址:https://gitee.com/qinganan_admin/PyCom Pycom是博主开发的串口工具,要是说对比其他串口工具&…

Flutter GetX 状态管理 响应式编程(三)

在2021年4月初,我们在应用开发中大量使用了 GetX,目前看来效果还不错,于是我最近也出了一套GetX的从入门到源码原理的分析教程,欢迎大家关注更新。 【1 GetX 基本使用路由管理】【2 GetX 使用入门 程序计数器】 第一步 使用 GetM…

可灵王炸更新,图生视频、视频续写,最长可达3分钟!Runway 不香了 ...

现在视频大模型有多卷? Runway 刚在6月17号 发布Gen3 ,坐上王座没几天; 可灵就在6月21日中午,重新夺回了王座!发布了图生视频功能,视频续写功能! 一张图概括: 二师兄和团队老师第一…

实施高效冷却技术:确保滚珠丝杆稳定运行!

滚珠丝杆在运行过程中,由于摩擦、惯性力等因素,会产生一定的热量,当热量无法及时散发时,滚珠丝杆的温度就会升高,会直接影响滚珠丝杆的精度和稳定性,从而影响最终的产品质量。为了让滚珠丝杆保持应有的精度…

Redis源码学习:ziplist的数据结构和连锁更新问题

ziplist ziplist 是 Redis 中一种紧凑型的列表结构&#xff0c;专门用来存储元素数量少且每个元素较小的数据。它是一个双端链表&#xff0c; 可以在任意一端进行压入/弹出操作&#xff0c;并且该操作的时间复杂度为O(1)。 ziplist数据结构 <zlbytes><zltail>&l…

Linux基础指令(三)

目录 shell 权限指令&#xff1a; 文件的操作权限&#xff1a; 对文件进行操作的用户分类&#xff1a; 用户对文件进行的操作分类&#xff1a; 所有者、所属组、其他的访问权限&#xff1a; 创建用户 沾滞位 匹配查找指令&#xff1a; grep find shell shell&#x…

Ubuntu22.04开机后发现IP地址变成127.0.0.1

开机就是这个样子 解决办法 ip地址可能被释放&#xff0c;需要重新设置成自动分配 sudo dhclient -v可能网卡未加托管 查看方式: nmcli n若是enable就是已被托管,若是disabled&#xff0c;说明网卡未被托管 解决办法: nmcli n on搞定

DataWhale - 吃瓜教程学习笔记(二)

学习视频&#xff1a;第3章-一元线性回归_哔哩哔哩_bilibili 西瓜书对应章节&#xff1a; 3.1 - 3.2 一元线性回归 - 最小二乘法 - 极大似然估计 - 梯度 多元函数的一阶导数 - 海塞矩阵 多元函数的二阶导数 - 机器学习三要素

软件介绍—Fluent Reader (RSS阅读器)

软件介绍—Fluent Reader &#xff08;RSS阅读器&#xff09; 01 RSS介绍 RSS可翻译为简易信息聚合&#xff08;也叫聚合内容&#xff09;是一种基于XML的标准&#xff0c;在互联网上被广泛采用的内容包装和投递协议。简单来讲&#xff0c;就是可以“订阅”一些网站新发布的内…

Android 开发Android Studio创建第一个Android应用

本文讲解如何Android Studio创建第一个Android应用。 启动Android Studio 或打开的项目的界面 点击File-New-New Project 选择“ Empty Views Activity”&#xff0c;点击Next 点击Next&#xff0c;项目创建完成如下&#xff1a; 创建项目完成&#xff0c;自带一个Activity。 …

FreeRTOS消息队列

队列简介 更详细的操作入下图所示&#xff1a; 传输数据的方法 FreeRTOS中的队列传输使用的是拷贝&#xff1a;把数据、把变量的值复制进队列里 FreeRTOS 使用拷贝值的方法&#xff0c;这更简单&#xff1a; &#xff08;1&#xff09; 局部变量的值可以发送到队列中&#…

linux最大线程数限制及打开最大文件数

1.root用户下执行 ulimit -a 然后查看 max user processes 这个值通常是系统最大线程数的一半 max user processes&#xff1a;当前用户同时打开的进程(包括线程)的最大个数为 2.普通用户下 ulimit -a 出现的max user processes的值 默认是 /etc/security/limits.d/20-nproc.co…

PHP环境搭建之使用PhpStudy

文章目录 1 PhpStudy1.1 简介1.2 下载&安装1.3 修改配置1.3.1 Apache配置1.3.2 MySQL配置1.3.3 MySQL启动问题 1.4 Composer1.4.1 简介1.4.2 下载安装1.4.3 修改配置1.4.4 使用命令 1 PhpStudy 1.1 简介 phpstudy是一个php运行环境的集成包&#xff0c;用户不需要去配置运…

KIVY BLOG Kivy tutorial 007: Introducing kv language

Kivy tutorial 007: Introducing kv language – Kivy Blog DECEMBER 18, 2019 BY ALEXANDER TAYLOR Kivy tutorial 007: Introducing kv language Kivy 导师课007&#xff1a; 介绍kv语言 Central themes: kv language, building a gui, integration with Python 中心主题:…

路由模式--哈希模式下使用a标签跳转会有问题

路由模式分为 history 和 hash 两种模式&#xff0c;在 hash 模式下&#xff0c;使用 a 标签去跳转路由&#xff0c;可能会有问题。 比如&#xff1a; <a href"/home"><img src"/logo.png" class"logo" /></a> 在跳转路由时…

神经网络学习6-线性层

归一化用的较少 正则化用来解决过拟合&#xff0c;处理最优化问题&#xff0c;批量归一化加快速度 正则化&#xff08;Regularization&#xff09;&#xff1a; 作用&#xff1a;正则化是一种用来防止过拟合的技术&#xff0c;通过向模型的损失函数中添加惩罚项&#xff0c;使…

【Mysql】SQL约束、主键约束、非空、唯一、外键约束

SQL约束 什么是约束: 对表中的数据进行进一步的限制&#xff0c;从而保证数据的正确性、有效性、完整性. 违反约束的不正确数据,将无法插入到表中。 常见的约束 约束名 约束关键字 主键 primary key 唯一 unique 非空 not null 外键 foreign key 2.1 主键约束 什么是主键约束&a…

香橙派 5 PLUS 安装QQ(arm架构、Ubuntu系统)

1、下载QQ for Linux&#xff1a; 访问腾讯QQ官网&#xff0c;下载适用于香橙派 5 PLUS的arm架构Linux的QQ安装包。 比如&#xff1a;ARM版下载deb格式QQ安装包 ‘ QQ_3.2.9_240617_arm64_01.deb ’。 2、安装QQ for Linux&#xff1a; sudo dpkg -i [下载的文件名.deb]3、运…

微信小程序反编译 2024 unveilr.exe

ps&#xff1a;一开始用的反编译工具是wxappUnpacker&#xff0c;后面改为 unveilr.exe 1.先找到小程序安装目录“E:\聊天记录\WeChat Files\Applet”&#xff0c;要反编译小程序的包 文件夹下的名字对应的是小程序ID&#xff0c;如果不确定是哪个&#xff0c;可以删除->打…