MySQL- 创建可以远程访问的root账户

news/2024/11/7 14:36:19/

创建用户

默认的root用户只能当前节点localhost访问,是无法远程访问的,所以,我们要创建一个root账户,帮助用户远程访问。

create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '1234';

这个命令是在MySQL数据库管理系统中用来创建一个新用户的SQL语句。

让我们详细看看该命令的各个组成部分:

  1. CREATE USER:这是SQL语句的开始,用于告诉MySQL我们要创建一个新用户。

  2. 'root'@'%':这部分定义了新用户的用户名和它可以从哪里连接到MySQL服务器。

    • 'root':这是新用户的用户名。在MySQL中,root通常是超级用户,拥有对所有数据库和表的完全访问权限。
    • '%':这表示用户可以从任何IP地址连接到MySQL服务器。如果我们想限制用户只能从特定的IP地址或域名连接,可以将%替换为具体的IP地址或域名。
  3. IDENTIFIED WITH mysql_native_password:这部分指定了用于认证用户的插件或机制。

    • mysql_native_password:这是一种认证方法,它告诉MySQL使用传统的方法来存储和验证用户密码。这是MySQL中较旧版本的标准认证方法。
  4. BY '1234':这部分设置了用户的密码。

    • '1234':这是用户的密码。在实际情况中,应该使用更强的密码来提高安全性。

综上所述,这个命令创建了一个名为root的新用户,这个用户可以从任何IP地址连接到MySQL服务器,并使用mysql_native_password作为认证方法,其密码设置为1234

请注意,使用root用户和弱密码(如示例中的’1234’)可能会带来安全风险。在生产环境中,建议使用更安全的用户名和强密码,并限制用户的连接IP地址以增强安全性。此外,MySQL的新版本可能使用不同的默认认证插件(如caching_sha2_password),因此在不同版本的MySQL中,命令的具体格式可能有所不同。


在 MySQL 8.0 版本中,创建用户的命令略有不同,主要是因为默认的身份验证插件从 mysql_native_password 更改为了 caching_sha2_password。下面是针对 MySQL 8.0 的修改后的命令:

CREATE USER 'root'@'%' IDENTIFIED WITH 'caching_sha2_password' BY '1234';

让我们详细看看该命令的各个组成部分:

  1. CREATE USER: 这是 SQL 语句的开始,用于通知 MySQL 我们要创建一个新用户。

  2. 'root'@'%': 定义了新用户的用户名和它可以从哪里连接到 MySQL 服务器。

    • 'root' 是新用户的用户名。在 MySQL 中,root 通常是具有所有权限的超级用户。
    • '%' 表示用户可以从任何 IP 地址连接到 MySQL 服务器。如果想限制用户仅能从特定的 IP 地址或域名连接,可以将 % 替换为具体的 IP 地址或域名。
  3. IDENTIFIED WITH 'caching_sha2_password': 指定用于身份验证的插件。

    • 'caching_sha2_password' 是 MySQL 8.0 中的默认身份验证插件,它提供了比 mysql_native_password 更高的安全性。
  4. BY '1234': 设置用户的密码。

    • '1234' 是用户的密码。在实际环境中,应使用更强的密码来提高安全性。

这个命令创建了一个名为 root 的新用户,允许它从任何 IP 地址连接到 MySQL 服务器,使用 caching_sha2_password 作为身份验证方法,密码设置为 1234

请注意,为了安全起见,不建议使用 root 用户名或弱密码(如示例中的 ‘1234’),特别是在生产环境中。同时,应该考虑限制用户的连接源地址以增强安全性。根据我们的 MySQL 配置和需求,可能需要启用或配置 caching_sha2_password 插件,以确保兼容性和安全性。

给root用户分配权限

GRANT ALL ON *.* TO 'root'@'%';

这个 SQL 命令是在 MySQL 数据库中用于授权的一个常见命令。让我们逐个分析这个命令的各个部分:

  1. GRANT ALL: 这部分是命令的核心。GRANT 是用来授予用户权限的 SQL 命令。ALL 表示授予所有的权限。这意味着执行这个命令后,用户将获得对数据库的所有操作权限,包括创建、读取、更新、删除数据,以及管理数据库的能力。

  2. ON *.*: 这部分指定了权限的应用范围。

    • 第一个 * 代表所有的数据库。
    • 第二个 * 代表数据库中的所有表。
    • 所以,*.* 表示对所有数据库及其中的所有表授予权限。
  3. TO 'root'@'%': 这部分指定了将权限授予给哪个用户,以及该用户可以从哪里连接到 MySQL 服务器。

    • 'root' 是用户的用户名,在这里是 MySQL 的超级用户。
    • '%' 表示用户可以从任何 IP 地址连接到 MySQL 服务器。如果需要限制用户只能从特定的 IP 地址或域名连接,可以将 % 替换为具体的 IP 地址或域名。

总结一下,命令 GRANT ALL ON *.* TO 'root'@'%'; 的含义是:授予用户名为 root 的用户,从任何 IP 地址连接到 MySQL 服务器时,对所有数据库和所有表的全部权限。

请注意,这种授权非常广泛,会给用户非常高的权限水平,包括修改数据库结构、访问和修改所有数据、管理用户权限等。在生产环境中,这样的权限通常只授予非常可信的管理员,因为它可能会导致安全风险,尤其是当 root 用户可以从任何地方连接时。通常建议根据需要为用户分配最小必要权限,以减少潜在的安全风险。


http://www.ppmy.cn/news/1241524.html

相关文章

每日OJ题_算法_双指针_力扣11. 盛最多水的容器

力扣11. 盛最多水的容器 11. 盛最多水的容器 - 力扣(LeetCode) 难度 中等 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成…

owl文件导入neo4j教程(win11)

一、前置条件 下载安装好neo4j 我是在官网下载的社区版4.4.28 下载neosemantics-4.4.0.3.jar 直接贴下载网址 https://objects.githubusercontent.com 下载rdf2rdf https://sourceforge.net/projects/rdf2rdf/ 下载并安装配置好jdk8 下载jdk11 二、步骤 1.使用如下命令将owl转…

基于STC12C5A60S2系列1T 8051单片读写掉电保存数据IIC总线器件24C02多字节并显示在液晶显示器LCD1602上应用

基于STC12C5A60S2系列1T 8051单片多字节读写掉电保存数据IIC总线器件24C02多字节并显示在液晶显示器LCD1602上应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍IIC通…

论文笔记:详解NEUPSL DSI

《Using Domain Knowledge to Guide Dialog Structure Induction via Neural Probabilistic 》 名词解释 Dialog Structure Induction(DSI)是推断给定目标导向对话的潜在对话结构(即一组对话状态及其时间转换)的任务。它是现代对…

element-ui表格无法横向拖动问题

是不是用到了fixed // 因为我只有在小屏显示不下的时候才会出现这个问题所以我在这里做了适配(建议把样式放在全局) media screen and (max-width: 1800px) {// 由于使用了fixed导致横向条无法拖动出现bug.Table-page .el-table__fixed {height: auto !important;bottom: 2px …

【阿里云】图像识别 智能分类识别 项目开发(一)

语音模块和阿里云图像识别结合 环境准备 代码实现 编译运行 写个shell脚本用于杀死运行的进程 语音模块和阿里云图像识别结合 使用语音模块和摄像头在香橙派上做垃圾智能分类识别 语音控制摄像下载上传阿里云解析功能点实现 环境准备 将语音模块接在UART5的位置 在orange…

深入浅出 Linux 中的 ARM IOMMU SMMU II

SMMU 驱动中的系统 I/O 设备探测 要使系统 I/O 设备的 DMA 内存访问能通过 IOMMU,需要将系统 I/O 设备和 IOMMU 设备绑定起来,也就是执行 SMMU 驱动中的系统 I/O 设备探测。总线发现系统 I/O 设备并和对应的驱动程序绑定,与 IOMMU 设备驱动程…

ERROR: Could not find a version that satisfies the requirement torch

在windows 上安装pip install torch torchvision torchaudio 报错: ERROR: Could not find a version that satisfies the requirement torch (from versions: none) ERROR: No matching distribution found for torch 解决办法: 将python版本降到3.11…