MySQL8.0远程连接和用户授权相关设置

2023-05-16

文章目录

      • 1、开启MySQL远程连接
      • 2、关闭MySQL远程连接
      • 3、修改防火墙规则,开放端口
      • 4、创建用户以及给用户授权
      • 5、删除用户及权限

1、开启MySQL远程连接

mysql -u root -p #进入MySQL数据库后进行一下操作。
mysql> use mysql;
mysql> update user set user.Host=’%’ where user.User=‘root’;
mysql> flush privileges;

注:将Host设置为‘%’表示任意IP都能连接MySQL,也可以将‘%’改为指定ip
在这里插入图片描述
如果远程连接遇到如下报错:

Unable to load authentication plugin 'caching_sha2_password'.

原因: 是因为mysql8使用的是caching_sha2_password加密规则。
解决方法:

  1. 修改远程连接用户的加密规则。

mysql> ALTER USER ‘test’@’%’ IDENTIFIED WITH mysql_native_password BY ‘12345’;

  1. 修改配置文件。

#vi /etc/my.cnf
加入下面内容:default_authentication_plugin=mysql_native_password

2、关闭MySQL远程连接

如果有关闭远程连接的需求,其实我们只需要Host恢复成默认设置(只能本地连接)即可,如下:

mysql -u root -p #进入MySQL数据库后进行一下操作。
mysql> use mysql;
mysql> update user set user.Host=‘localhost’ where user.User=‘root’;
mysql> flush privileges;

在这里插入图片描述
以上的操作都可以通过查看MySQL的user表的host、user字段来验证是否修改成功:

mysql> select host,user from user;

在这里插入图片描述

3、修改防火墙规则,开放端口

如果服务器防火墙未关,在开启了MySQL的远程连接之后还需要进行防火墙的设置,开放其端口(如:3306),这里以centos7为例,其他版本的请自行百度,如下:

#centos7 开启防火墙端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent

在这里插入图片描述
参数说明:
    --zone         #作用域
    --add-port=3306/tcp   #添加端口,格式为:端口/通讯协议
    --permanent      #永久生效,没有此参数重启后失效

systemctl restart firewalld #重启防火墙,或者 firewall-cmd --reload(更新防火墙规则)
firewall-cmd --list-ports #查看已经开放的端口

在这里插入图片描述

systemctl status firewalld #查看防火墙状态,或者 firewall-cmd –state

到此,基本就可以用工具远程连接MySQL了。

4、创建用户以及给用户授权

  1. 授予 test 用户拥有所有库所有表的所有权限

在授予权限前先说一下MySQL8.0的新语法:
因为MySQL8.0提升了安全级别,更加严谨,所以创建用户并授权不能和以前一样用一条SQL语句完成,现在必须先创建用户设置密码,再进行授权。

#以前可以直接用如下一条SQL:
mysql> grant all privileges on . to test@’%’ identified by ‘12345’;

如果在MySQL8.0中执行上面这个SQL会报SQL语法错误。

#在MySQL8.0中必须先创建任意主机可访问的用户:
mysql> create user test@’%’ identified by ‘12345’;
#然后再对用户进行授权:
mysql> grant all on . to test@’%’; #privileges 可以省略!
mysql> flush privileges; #刷新权限

MySQL8.0创建用户并授权
注意:在MySQL8.0中,如果创建了用户并授予了all 权限,那么即便用 root 用户也可能无法删除这些用户,会报

ERROR 1227 (42000): Access denied; you need (at least one of) the SYSTEM_USER privilege(s) for this operation

如图:
在这里插入图片描述
原因:这是由于MySQL8.0新增了一个SYSTEM_USER权限,如果创建用户并授予all权限时,就会赋予SYSTEM_USER权限,而root用户并没有这个权限,所以无法删除其他用户。
解决办法:

  • 不授予用户all权限。(一般为了安全是不可能给一个用户授予all权限的,即便root也没有all权限)

mysql> show grants for root@’%’;

在这里插入图片描述

  • 授予root用户SYSTEM_USER,然后删除其他用户。

mysql> grant SYSTEM_USER on . to root@’%’;
mysql> flush privileges;
mysql> drop user test@’%’;

在这里插入图片描述

  1. 授予 test 用户拥有所有库所有表部分权限

mysql> grant select,insert,update on . to test@’%’;
mysql> flush privileges;

在这里插入图片描述
3. 授予 test 用户拥有testdb库所有表部分权限

mysql> grant select,insert,update on testdb.* to test@’%’;
mysql> flush privileges;

在这里插入图片描述
4. 授予 test 用户拥有testdb库test表的部分权限

mysql> grant select,insert,update on testdb.test to test@’%’;
mysql> flush privileges;

在这里插入图片描述
更多的权限请自行琢磨,或者一起来琢磨(滑稽.jpg)

5、删除用户及权限

mysql> drop user test@’%’;
mysql> drop user test1@localhost;


欢迎进群:747509472 交流学习!感谢指正!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL8.0远程连接和用户授权相关设置 的相关文章

随机推荐

  • 操作系统复习之OS的运行环境

    目录 1 3 1用户态与核心态 1 3 2中断与异常 1 3 3系统调用 例题 1 3 1用户态与核心态 在计算机系统中 xff0c CPU通常运行两种不同性质的程序 一种是操作系统内核程序 另一种是用户自编程序 xff0c 简称用户程序或
  • Docker搭建nextcloud+onlyoffice+ldap+smb协作编辑

    安装docker span class token comment 通过yum源安装docker span sudo yum span class token operator span y install docker span clas
  • 装破解软件后,容易出现hardlock.sys蓝屏警告

    一般遇到这种情况先别着急重装系统 xff0c 先进入安全模式把刚才装的软件卸载 xff0c 包括文件夹删干净 然后可以把别的电脑的hardlock sys文件直接拷贝过来替换掉 xff0c 重启一般就可以
  • windows下C++连接本地MySQL数据库

    IDE选用CLion 这是我数据库里的数据 db1数据库里的user表 首先将本地MySQL的lb文件夹里的libmysql dll和libmysql lib这两个文件复制到cmake build debug文件夹下 xff0c 这两个文件
  • Openstack 知识点概述及基本常用命令

    Openstack OpenStack既是一个社区 xff0c 也是一个项目和一个开源软件 xff0c 提供开放源码软件 xff0c 建立公共和私有云 xff0c 它提供了一个部署云的操作平台或工具集 xff0c 其宗旨在于 xff1a 帮
  • Visual Studio 2017 运行、调试使用CMake构建的多可执行程序项目

    在 Windows 环境下 xff0c 笔者主要通过 Visual Studio 进行较大型项目的查看和运行调试 这里记录下使用 Visual Studio 编译 运行和调试可能包含有多个可执行程序的多文件项目的方法 xff0c 特别的 x
  • C语言实现链表的逆序的几种方式

    文章目录 通过头插法实现的通过双指针实现链表的逆序通过栈来实现的通过递归来实现 通过头插法实现的 1 通过头插法 xff08 两条链表 xff09 来实现的 通过遍历原来的链表 xff0c 将遍历得到的每一个节点都插入到新链表的头结点 xf
  • Ubuntu进入(安全模式)修改用户密码

    一 重启系统 xff0c 开机时 xff0c 长按shift进入grub菜单 xff08 有的不用按直接进入如下菜单 xff09 xff1b 选择高级选项 xff1b 回车继续 xff1b 二 选中recovery mode xff08 如
  • Node 之 React ref 最新版本的用法

    在进行React开发时 xff0c 有时在组件的代码中需要访问实际的Dom对象 xff0c 这个时候就要用到ref这个属性来将 dom对象的值保存进来 xff0c 以便代码访问 一 Create Ref 自从 React v16 3开始 x
  • Pagehelper分页插件之自定义COUNT用法

    记录最近遇到的一个小麻烦 1 背景 我这次的需求是实现用户在搜索框输入关键字进行模糊查询 其实挺简单的 xff0c 就是在原来别人的XML代码上做一点修改 xff0c 也就是查询的SQL语句做点改动 xff0c 就是增加三个字段的模糊匹配
  • 网络攻防——kali操作系统基本使用

    1 阅读前的声明 本文章中生成的木马带有一定的攻击性 xff0c 使用时请遵守网络安全相关的法律法规 xff08 恶意攻击操作系统属于违法行为 xff09 2 环境安装 生成木马主要需要如下工具 xff1a kali操作系统 xff0c V
  • Visual Studio Code安装教程(超详细)

    网盘自取 xff1a https pan baidu com s 1BQDyf7uqQopJ3UUZnQ0E6g 提取码 xff1a 2022 点击VSCodeSetup x64进行安装 弹出安装向导 xff0c 勾选我同意 xff0c 点
  • 【实习日记】Sftp & Python上传本地多级文件夹

    实现功能 xff1a 将本地多级文件夹上传至sftp服务器 1 测试 由于公司的sftp已经投入使用了 xff0c 没办法随便连接 xff0c 先在本地用shutil库实现一个文件夹到另一个文件夹的复制 xff0c 把一个本地文件夹当作远程
  • 很简单——拓扑排序(队列实现)

    有N个比赛队 xff08 1 lt 61 N lt 61 500 xff09 xff0c 编号依次为1 xff0c 2 xff0c 3 xff0c xff0c N进行比赛 xff0c 比赛结束后 xff0c 裁判委员会要将所有参赛队伍从前往
  • SSD,NCC,Lucas-Kanade模板匹配,目标跟踪

    SSD xff0c NCC xff0c Lucas Kanade模板匹配 xff0c 目标跟踪 SSD原理 xff1a 实现 xff1a 结果 xff1a NCC原理 xff1a 实现 xff1a 结果 xff1a Lucas Kanade
  • linux下重启Tomcat命令

    第一步 xff1a 进入Tomcat下的bin目录 cd usr local tomcat bin 第二步 xff1a 查询Tomcat是否关闭 ps ef grep java 第三步 xff1a 如果显示以下信息 xff0c 代表着Tom
  • Xshell连接不上Ubuntu 20.04.1 LTS的解决方案

    第一步 xff1a 打开终端输入ifconfig查看IP地址是否错误 xff0c 如果提示如下图 xff0c 需要安装net tools xff0c 输入如下命令 sudo apt install net tools 第二步 xff1a 安
  • “花生壳”实现内网穿透搭建个人网站

    我们先简单介绍一下内网穿透 xff0c 也叫 NAT 穿透 xff0c 进行 NAT 穿透是为了使具有某一个特定源 IP 地址和源端口号的数据包不被 NAT 设备屏蔽而正确路由到内网主机 xff0c 在目前国内的内网穿透工具很多 xff0c
  • arch linux 超全安装

    Arch Linux安装 1 制作安装介质 下载ISO镜像文件 xff1a https archlinux org download 官方下载网址 注 xff1a 下载选择 xff0c 中国镜像 制作安装介质 xff1a 在Windows中
  • MySQL8.0远程连接和用户授权相关设置

    文章目录 1 开启MySQL远程连接2 关闭MySQL远程连接3 修改防火墙规则 xff0c 开放端口4 创建用户以及给用户授权5 删除用户及权限 1 开启MySQL远程连接 mysql u root p 进入MySQL数据库后进行一下操作