MySQL8.0 创建用户、配置用户权限、添加外网访问

本文介绍了如何在MySQL8.0中创建用户、赋予外网访问权限,以及修改DDL和DML权限。步骤包括连接数据库、修改root用户权限、允许远程访问、刷新权限,并提供了权限列举,如CREATE、INSERT等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL8.0 创建用户、配置用户权限、添加外网访问

在这里插入图片描述

添加用户、外网访问

在MySQL 8.0中,root用户的外网访问权限默认是被禁止的。要修改root用户的外网访问权限,您需要进行以下步骤:

  1. 连接到MySQL服务器。您可以使用MySQL命令行客户端或其他数据库管理工具。

  2. 使用以下命令以root身份登录MySQL:

sudo mysql -u root -p

然后输入您的root用户密码。

  1. 输入以下命令以修改root用户的外网访问权限:
    在这里插入图片描述
# 允许本地访问
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '您的密码';
# 允许外网访问
CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '您的密码';
# 设置允许访问的数据库
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
# 刷新缓存
FLUSH PRIVILEGES;

请将 '您的密码' 替换为您要设置的root用户密码。

  1. 需要编辑MySQL配置文件以允许远程访问。找到并打开MySQL配置文件(通常在/etc/mysql/mysql.conf.d/mysqld.cnf/etc/mysql/my.cnf)。

  2. 在配置文件中找到bind-address行,并将其注释或更改为以下内容:

# bind-address = 127.0.0.1

这将允许MySQL接受来自所有IP地址的连接。

  1. 保存并关闭配置文件。

  2. 重新启动MySQL服务,使更改生效。使用适合您的操作系统的命令:

sudo service mysql restart

sudo systemctl restart mysql

现在,root用户应该具有外网访问权限。请注意,出于安全考虑,授予root用户远程访问权限可能会有风险。出于安全原因,建议使用具有更严格访问权限的用户,并限制远程访问仅限于需要的IP地址。

修改用户DDL、DML权限

要修改MySQL 8.0中的DDL(数据定义语言)和DML(数据操作语言)权限,您可以按照以下步骤进行操作:

步骤1:使用root用户登录MySQL

在命令行终端中,使用root用户登录MySQL服务器。执行以下命令:

mysql -u root -p

输入root用户的密码,然后按下回车键登录到MySQL。

步骤2:查看当前用户权限

查看当前用户的权限,可以使用以下命令:

SHOW GRANTS FOR '<your_username>'; 

<your_username>替换为您要修改权限的用户名。

步骤3:修改DDL权限

a. 修改已存在用户的DDL权限:

在上一步中,您可以看到显示了当前用户的权限信息。查找到以GRANT ALTER, CREATE, DROP, INDEX, …开头的权限语句,这些权限允许用户进行DDL操作。如果希望取消某个DDL权限,可以使用以下示例命令:

REVOKE DROP ON your_database_name.* FROM '<your_username>';

your_database_name替换为您要更改权限的数据库名称,将<your_username>替换为要修改权限的用户名。

b. 修改新建用户的DDL权限:

如果要为新建用户设置默认的DDL权限,可以使用以下命令:

CREATE USER 'your_username'@'localhost';
GRANT CREATE, ALTER, DROP, INDEX,ON your_database_name.* TO 'your_username'@'localhost';

your_usernameyour_database_name替换为适当的值,并根据需要添加其他DDL权限。

步骤4:修改DML权限

要修改DML权限,您可以按照步骤3的示例将DDL替换为DML。例如,如果要授予或撤销INSERT权限,可以使用以下命令:

授予INSERT权限:

GRANT INSERT ON your_database_name.* TO 'your_username'@'localhost';

撤销INSERT权限:

REVOKE INSERT ON your_database_name.* FROM 'your_username'@'localhost';

根据您的需求,调整语句中的数据库、用户名和权限。

步骤5:刷新权限

当您完成对权限的修改后,必须刷新MySQL的权限缓存,以使更改生效。使用以下命令:

FLUSH PRIVILEGES;

这将刷新权限并使修改后的权限立即生效。

步骤6:退出MySQL

完成所有权限修改后,可以使用以下命令退出MySQL:

EXIT;

这将退出MySQL命令行终端。

通过按照上述步骤,您可以在MySQL 8.0中修改DDL和DML权限。请注意,修改权限可能会对数据库的安全性和数据完整性产生影响,请谨慎操作。

DDL、DML权限列表

以下是MySQL中的常见DDL和DML权限列表:

DDL权限(数据定义语言):

  • CREATE:创建新数据库、表、视图、函数、存储过程等。
  • ALTER:修改数据库结构,如更改表的结构(添加/删除列)、修改列的属性等。
  • DROP:删除数据库、表、视图、函数、存储过程等。
  • INDEX:创建、修改或删除索引。
  • TRIGGER:创建、修改或删除触发器。
  • VIEW:创建、修改或删除视图。
  • SHOW VIEW:查看视图的定义信息。
  • GRANT OPTION:授予其他用户权限。

DML权限(数据操作语言):

  • SELECT:从表中检索数据。
  • INSERT:向表中插入新的行。
  • UPDATE:更新表中已有的行。
  • DELETE:从表中删除数据。
  • EXECUTE:执行存储过程或函数。

这些权限可以单独授予或撤销给特定的用户或用户组。请注意,在实际使用中,根据具体需要,可以进一步细分DDL和DML权限。

### 配置 Windows 上的 MySQL 8 允许远程或外网访问 #### 下载并安装 MySQL 8 对于 Windows 系统,建议下载 ZIP 版本的 MySQL 进行安装[^2]。前往官方提供的链接下载适用于 Windows 的 MySQL 8.0 ZIP 文件。 #### 设置 MySQL 服务 解压下载好的 ZIP 文件至合适位置后,在命令提示符下通过管理员身份运行以下指令来初始化数据库: ```batch cd C:\path\to\mysql-8.0.x-winx64\bin mysqld --initialize-insecure --user=mysql ``` 启动 MySQL 服务前需确保已创建好 my.ini 或 my.cnf 配置文件,并加入如下参数以便监听所有 IP 地址: ```ini [mysqld] port=3306 bind-address=0.0.0.0 ``` 之后可以利用 `net start` 命令开启 MySQL 服务。 #### 修改用户权限 为了使特定账户能够接受来自任何主机的连接请求,需要以 root 用户登录 MySQL 并执行 SQL 更新语句更改目标用户的 Host 字段为 `%`[^3]。同时考虑到安全性因素,推荐仅授予必要的最小化权限给该账号。 ```sql USE mysql; UPDATE user SET host='%' WHERE user='your_username'; FLUSH PRIVILEGES; ``` 另外需要注意的是,默认情况下 MySQL 8 使用了更安全的身份验证插件 caching_sha2_password,这可能会造成某些客户端难以成功建立连接。因此可以通过 ALTER USER 来改变认证方式为较旧版本兼容模式(mysql_native_password)[^5]: ```sql ALTER USER 'your_username'@'%' IDENTIFIED WITH mysql_native_password BY 'YourStrong!Passw0rd'; ``` 最后记得重启 MySQL 服务让改动生效。 #### 开放防火墙端口 为了让外部网络能顺利抵达本地服务器上的 MySQL 数据库实例,还需调整操作系统自带防火墙策略放开对应的服务端口号(通常是 3306)。具体操作是在控制面板 -> 系统和安全 -> Windows Defender 防火墙 中找到高级设置->新建入站规则向导完成相应配置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LOVE_DDZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值