MYSQL8.0.44的lLinux - Generic的安装

https://dev.mysql.com/downloads/mysql/
https://dev.mysql.com/doc/refman/8.0/en/binary-installation.html
https://dev.mysql.com/doc/
https://dev.mysql.com/doc/refman/8.4/en/security.html

mysql-VERSION-OS-GLIBCVER-ARCH-minimal.tar.xz 的 MySQL 压缩 tar 文件版本,适用于 Linux 通用二进制分发,是"最小安装"版本。该最小安装版本不包括调试二进制文件,

  • ldd --version 系统的GLIBCVER版本

安装前期工作

bash 复制代码
firewalld 是否运行unknown可能未安装或服务名错误
firewalld 是否开机自启disabled即使存在,也不会自动启动
SELinux 状态Disabled安全策略关闭,适合测试环境

root@elk153:~ # systemctl is-active firewalld
unknown
root@elk153:~ # systemctl is-enabled firewalld
disabled
root@elk153:~ # getenforce
Disabled

https://dev.mysql.com/downloads/file/?id=546090
https://dev.mysql.com/downloads/mysql/

Linux - Generic (glibc 2.28) (x86, 32-bit)适用于 32 位 x86 系统,且系统 glibc ≥ 2.28(如较新的 Debian/Ubuntu)
Linux - Generic (glibc 2.28) (x86, 64-bit)适用于 64 位 x86 系统,glibc ≥ 2.28(主流现代 Linux)✅ 推荐
Linux - Generic (glibc 2.28) (ARM, 64-bit)适用于 ARM64 系统(如树莓派 4B、华为服务器等)
Linux - Generic (glibc 2.17) (x86, 32-bit)适用于旧系统,32 位 + glibc ≥ 2.17(如 CentOS 7 32 位)
Linux - Generic (glibc 2.17) (x86, 64-bit)适用于旧系统,64 位 + glibc ≥ 2.17(如 CentOS 7、RHEL 7)

发行版默认 glibc 版本是否 ≥ 2.28?
Ubuntu 18.042.27❌ 接近但不满足
Ubuntu 20.042.31✅ 是
Ubuntu 22.042.35✅ 是
Debian 10 (Buster)2.28✅ 刚好满足
Debian 11 (Bullseye)2.31✅ 是
CentOS 7 / RHEL 72.17❌ 否
CentOS 8 / RHEL 82.28✅ 刚好满足
AlmaLinux/Rocky Linux 82.28✅ 是
AlmaLinux/Rocky Linux 92.34✅ 是


root@elk153:~ # sz firewalld.txt
OOroot@elk153:~ # getent passwd root
root:x:0:0:root:/root:/bin/bash
root@elk153:~ # getent host
未知的数据库:host
试用"getent --help"或"getent --usage"以获取更多信息。
root@elk153:~ # getent hosts
10.0.0.150      elk150
10.0.0.151      elk151
10.0.0.152      elk152
10.0.0.153      elk153 tomcat.games.com
root@elk153:~ # getkeycodes

root@elk153:~ # yum install -y libaio-devel
已加载插件:fastestmirror

已安装:
  libaio-devel.x86_64 0:0.3.109-13.el7                                         

root@elk153:~ # cd /usr/local/
root@elk153:/usr/local # ll
总用量 0
drwxr-xr-x. 2 root root  6 4月  11 2018 bin
drwxr-xr-x. 2 root root  6 4月  11 2018 etc
drwxr-xr-x. 2 root root  6 4月  11 2018 games
drwxr-xr-x. 2 root root  6 4月  11 2018 include
drwxr-xr-x. 2 root root  6 4月  11 2018 lib
drwxr-xr-x. 2 root root  6 4月  11 2018 lib64
drwxr-xr-x. 2 root root  6 4月  11 2018 libexec
drwxr-xr-x. 2 root root  6 4月  11 2018 sbin
drwxr-xr-x. 5 root root 49 12月 17 21:45 share
drwxr-xr-x. 2 root root  6 4月  11 2018 src

## 版本
glibc 提供了程序运行所必需的基础功能,包括:
文件操作:打开、读取、写入文件(fopen, read, write)
进程管理:创建进程、线程(fork, pthread_create)
网络通信:socket 编程(socket, connect)
内存管理:分配内存(malloc, free)
字符串操作:strcpy, strcmp 等
数学计算:sin, cos, sqrt 等
# 查看系统架构
uname -m

ldd --version
# 或
/lib64/libc.so.6
root@elk153:/usr/local # ldd --version
ldd (GNU libc) 2.17
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
由 Roland McGrath 和 Ulrich Drepper 编写。
root@elk153:/usr/local # getconf GNU_LIBC_VERSION
glibc 2.17
root@elk153:/usr/local # ll /lib64/libc.so.6
lrwxrwxrwx. 1 root root 12 12月 17 21:45 /lib64/libc.so.6 -> libc-2.17.so
root@elk153:/usr/local # uname -m
x86_64
root@elk153:/usr/local # cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"


root@elk153:/usr/local # tar xf  mysql-8.0.44-linux-glibc2.17-x86_64.tar.xz
root@elk153:/usr/local # ll
总用量 850532
drwxr-xr-x. 2 root root         6 4月  11 2018 bin
drwxr-xr-x. 2 root root         6 4月  11 2018 etc
drwxr-xr-x. 2 root root         6 4月  11 2018 games
drwxr-xr-x. 2 root root         6 4月  11 2018 include
drwxr-xr-x. 2 root root         6 4月  11 2018 lib
drwxr-xr-x. 2 root root         6 4月  11 2018 lib64
drwxr-xr-x. 2 root root         6 4月  11 2018 libexec
drwxr-xr-x  9 root root       129 12月 28 10:47 mysql-8.0.44-linux-glibc2.17-x86_64
-r--------  1 root root 870940960 12月 28 10:41 mysql-8.0.44-linux-glibc2.17-x86_64.tar.xz
drwxr-xr-x. 2 root root         6 4月  11 2018 sbin
drwxr-xr-x. 5 root root        49 12月 17 21:45 share
drwxr-xr-x. 2 root root         6 4月  11 2018 src
root@elk153:/usr/local # ln -s mysql-8.0.44-linux-glibc2.17-x86_64 mysql

root@elk153:/usr/local # vim /etc/p
pam.d/          pki/            popt.d/         profile
passwd          plymouth/       ppp/            profile.d/
passwd-         pm/             prelink.conf.d/ protocols
pkcs11/         polkit-1/       printcap        python/
root@elk153:/usr/local # vim /etc/profile
profile    profile.d/
root@elk153:/usr/local # vim /etc/profile
profile    profile.d/

root@elk153:/usr/local # cat /etc/profile


export PATH=$PATH:/usr/musql/bin
root@elk153:/usr/local # res
rescan-scsi-bus.sh  resize2fs           resizepart
reset               resizecons          restorecon
root@elk153:/usr/local # source /etc/profile
root@elk153:/usr/local # mysql -V
-bash: mysql: 未找到命令
root@elk153:/usr/local # vim /etc/profile
root@elk153:/usr/local # source /etc/profile
root@elk153:/usr/local # mysql -V
-bash: mysql: 未找到命令
root@elk153:/usr/local # vim /etc/profile
root@elk153:/usr/local # source /etc/profile
root@elk153:/usr/local # mysql -V
mysql  Ver 8.0.44 for Linux on x86_64 (MySQL Community Server - GPL)
root@elk153:/usr/local # /data -d
-bash: /data: 没有那个文件或目录
root@elk153:/usr/local # mkdir /data/3306/data
mkdir: 无法创建目录"/data/3306/data": 没有那个文件或目录

root@elk153:/usr/local # mkdir -p  /data/3306/data
root@elk153:/usr/local # ll /usr/local/mysql
lrwxrwxrwx 1 root root 35 12月 28 10:48 /usr/local/mysql -> mysql-8.0.44-linux-glibc2.17-x86_64

mysql 用户组

bash 复制代码
root@elk153:/data/3306/data # useradd mysql -M -s /sbin/nologin
root@elk153:/data/3306/data # mysql id
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
root@elk153:/data/3306/data # id mysql
uid=1001(mysql) gid=1001(mysql) 组=1001(mysql)
root@elk153:/data/3306/data # chown mysql:mysql /data/3306/data/
root@elk153:/data/3306/data # ll  /data/3306/
总用量 0
drwxr-xr-x 2 mysql mysql 6 12月 28 10:55 data

root@elk153:/data/3306/data # /usr/local/mysql/bin/mysqld \
>   --initialize-insecure \
>   --user=mysql \
>   --datadir=/data/3306/data \
>   --basedir=/usr/local/mysql


root@elk153:/data/3306/data # rm -rf /data/3306/data/*

## 初始化 5.7  / 8.0.44
root@elk153:/data/3306/data # mysqld --initialize-insecure --user=mysql --datadir=/data/3306/data --basedir=/usr/local/mysql

2025-12-28T03:22:01.564856Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.44) initializing of server in progress as process 68297

mysqld --initialize --user=mysql --datadir=/data/3306/data --basedir=/usr/local/mysql

MySQL 5.5 / 5.6 版本的初始化命令
使用 mysql_install_db 工具进行初始化:

mysql_install_db --user=mysql --datadir=/data/3306/data --basedir=/usr/local/mysql



root@elk153:/data/3306/data # ll
总用量 82364
-rw-r----- 1 mysql mysql       56 12月 28 11:25 auto.cnf
-


数据库启动失败
     ↓
   检查是否有其他 MySQL 进程(ps, netstat)
     ↓
   检查 SELinux 状态(setenforce 0 测试)
     ↓
   查看错误日志:cat /data/3306/data/master.err
     ↓
   分析报错内容 → 权限?路径?PID?端口?
     ↓
   对症处理(修改权限、删除 PID、修复配置等)
     ↓
   重新启动服务:systemctl start mysql 或 mysqld_safe

启动服务

bash 复制代码
root@elk153:~ # cat > /etc/my.cnf <<eof
> [mysql]
> socket=/tmp/mysql.sock
> [mysqld]
> user=mysql
> basedir=/usr/local/mysql
> datadir=/data/3306/data
> socket=/tmp/mysql.sock
> eof
# pid-file=/data/3306/data/mysqld.pid
root@elk153:~ # ll /etc/m
machine-id                makedumpfile.conf.sample  mke2fs.conf               modules-load.d/           mtab                     
magic                     man_db.conf               modprobe.d/               motd                      my.cnf                   
root@elk153:~ # ll /etc/m
machine-id                makedumpfile.conf.sample  mke2fs.conf               modules-load.d/           mtab                     
magic                     man_db.conf               modprobe.d/               motd                      my.cnf                   
root@elk153:~ # ll /etc/my.cnf
-rw-r--r-- 1 root root 123 12月 28 13:30 /etc/my.cnf



root@elk153:/etc/init.d # head -5 /usr/local/mysql/support-files/mysql.server
#!/bin/sh

root@elk153:/etc/init.d # cat  /usr/local/mysql/support-files/mysql.server

root@elk153:/etc/init.d #

## 

Nginx 采用 多进程隔离架构,worker 被杀不影响 master,且会自动恢复。
MySQL 是 单进程多线程模型,没有真正独立的"子进程";强制杀死内部线程会破坏进程状态,导致整个服务退出。

## 启动

root@elk153:/etc/init.d # /etc/init.d/mysqld start
Starting MySQL.Logging to '/usr/local/mysql/data/elk153.err'.
ERROR! The server quit without updating PID file (/usr/local/mysql/data/elk153.pid).
root@elk153:/etc/init.d # /etc/init.d/mysqld status
ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists
root@elk153:/etc/init.d # /etc/init.d/mysqld start
Starting MySQL.Logging to '/data/3306/data/elk153.err'.
SUCCESS!
root@elk153:/etc/init.d # /etc/init.d/mysqld status
SUCCESS! MySQL running (129660)
root@elk153:/etc/init.d # ps -ef |grep mysql
root        487  78825  0 13:31 pts/0    00:00:00 grep --color=auto mysql
root     129521      1  0 13:31 pts/0    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/3306/data --pid-file=/data/3306/data/elk153.pid
mysql    129660 129521  5 13:31 pts/0    00:00:01 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/3306/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=elk153.err --pid-file=/data/3306/data/elk153.pid --socket=/tmp/mysql.sock
root@elk153:/etc/init.d # ss -ntl |grep mysql
root@elk153:/etc/init.d # ss  |grep mysql
root@elk153:/etc/init.d # ss -ntl |grep 3306
LISTEN     0      128         :::3306                    :::*                 
LISTEN     0      70          :::33060                   :::*                 
root@elk153:/etc/init.d # mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.44 MySQL Community Server - GPL

Copyright (c) 2000, 2025, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases
    -> ;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)


mysql> create database games;
Query OK, 1 row affected (0.00 sec)

mysql> use games;
Database changed
mysql> show databases
    -> ;
+--------------------+
| Database           |
+--------------------+
| games              |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql> show tables
    -> ;
Empty set (0.01 sec)

mysqld.service.d

bash 复制代码
# 
使用 systemd 的 drop-in(覆盖)机制 来自定义
 MySQL 服务的运行参数,而不修改主服务文件(如 /usr/lib/systemd/system/mysqld.service)

/etc/systemd/system/mysqld.service.d


编写 service 文件(如 /etc/systemd/system/mysqld.service)
[Unit]
Description=MySQL Server 8.0.44
After=network-online.target
Wants=network-online.target

[Service]
Type=notify
User=mysql
Group=mysql
WorkingDirectory=/usr/local/mysql

ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
ExecStop=/usr/local/mysql/bin/mysqladmin --defaults-file=/etc/my.cnf shutdown

Restart=on-failure
RestartSec=30
TimeoutSec=300

LimitNOFILE=65535
PrivateTmp=false

# 可选:若需通过 journal 查看日志
# StandardOutput=journal
# StandardError=journal

[Install]
WantedBy=multi-user.target

# PrivateTmp=false 的核心作用
禁用临时目录隔离,让服务直接使用系统全局的 /tmp 和 /var/tmp


root@elk153:/usr/local/mysql # systemctl daemon-reload
root@elk153:/usr/local/mysql # systemctl cat
Display all 303 possibilities? (y or n)^C
root@elk153:/usr/local/mysql # systemctl cat mysqld.service
# /etc/systemd/system/mysqld.service
[Unit]
Description=MySQL Server 8.0.44
After=network-online.target
Wants=network-online.target

[Service]
Type=notify
User=mysql
Group=mysql
WorkingDirectory=/usr/local/mysql

ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
ExecStop=/usr/local/mysql/bin/mysqladmin --defaults-file=/etc/my.cnf shutdown

Restart=on-failure
RestartSec=30
TimeoutSec=300

LimitNOFILE=65535
PrivateTmp=false

# 可选:若需通过 journal 查看日志
# StandardOutput=journal
# StandardError=journal

root@elk153:/usr/local/mysql # systemctl start mysql
Failed to start mysql.service: Unit not found.
root@elk153:/usr/local/mysql # systemctl start mysqld.service
root@elk153:/usr/local/mysql # ps -ef |grep mysql
mysql       882      1  7 16:35 ?        00:00:00 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
root       1102  81396  0 16:35 pts/1    00:00:00 grep --color=auto mysql
root@elk153:/usr/local/mysql # jo
jobs        join        journalctl 
root@elk153:/usr/local/mysql # journalctl -u mysqld.service
-- Logs begin at 日 2025-12-28 09:16:55 CST, end at 日 2025-12-28 16:35:27 CST. --
12月 28 15:22:00 elk153 systemd[1]: Starting LSB: start and stop MySQL...
12月 28 15:22:01 elk153 mysqld[42838]: Starting MySQL. SUCCESS!
12月 28 15:22:01 elk153 systemd[1]: Started LSB: start and stop MySQL.

root@elk153:~ # systemctl status mysqld.service
● mysqld.service - MySQL Server 8.0.44
   Loaded: loaded (/etc/systemd/system/mysqld.service; disabled; vendor preset: disabled)
   Active: active (running) since 日 2025-12-28 16:35:19 CST; 52s ago
Main PID: 882 (mysqld)
   Status: "Server is operational"
   CGroup: /system.slice/mysqld.service
           └─882 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf

12月 28 16:35:19 elk153 systemd[1]: Starting MySQL Server 8.0.44...
12月 28 16:35:19 elk153 mysqld[882]: 2025-12-28T08:35:19.634613Z 0 [System] [MY-010116] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.44) starting as process 882
12月 28 16:35:19 elk153 mysqld[882]: 2025-12-28T08:35:19.641400Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.

密码初始化

bash 复制代码
## 用户表
mysql> select user,host,authentication_string from mysql.user;
+------------------+-----------+------------------------------------------------------------------------+
| user             | host      | authentication_string                                                  |
+------------------+-----------+------------------------------------------------------------------------+
| mysql.infoschema | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root             | localhost |                                                                        |
+------------------+-----------+------------------------------------------------------------------------+
4 rows in set (0.00 sec)


情况1:没有设置密码 → 设置初始密码
方法一:使用 mysqladmin
mysqladmin -uroot password 'oldboy123'

方法二:登录后修改密码。 使用 SQL 命令
mysql -uroot -poldboy123
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

情况2:已有密码 → 修改密码
方法一:使用 mysqladmin
mysqladmin -uroot -poldboy123 password '123456'

方法二:使用 SQL 命令
mysql -uroot -poldboy123
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

情况3:已知密码但忘记密码 → 重置密码(关键!)

步骤一:关闭数据库服务

mysql> shutdown;
或
systemctl stop mysqld

步骤二:安全模式启动 MySQL(跳过权限表)

/usr/local/mysql/bin/mysqld_safe \
  --datadir=/data/3306/data \
  --skip-grant-tables \
  --skip-networking \
  &

步骤三:重置密码信息

mysql -u root
进入 MySQL 后执行:
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '123123';
必须先执行 FLUSH PRIVILEGES;,否则权限表未加载。

步骤四:重新启动数据库服务

systemctl stop mysqld
systemctl start mysqld
或者手动重启:
killall mysqld
/usr/local/mysql/bin/mysqld_safe --datadir=/data/3306/data &
步骤五:测试登录
mysql -u root -p123123

指令

bash 复制代码
 root@elk153:~ # systemctl status mysqld.service 
● mysqld.service - MySQL Server 8.0.44
   Loaded: loaded (/etc/systemd/system/mysqld.service; disabled; vendor preset: disabled)
   Active: active (running) since 日 2025-12-28 16:35:19 CST; 52s ago
 Main PID: 882 (mysqld)
   Status: "Server is operational"
   CGroup: /system.slice/mysqld.service
           └─882 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf

12月 28 16:35:19 elk153 systemd[1]: Starting MySQL Server 8.0.44...
12月 28 16:35:19 elk153 mysqld[882]: 2025-12-28T08:35:19.634613Z 0 [System] [MY-010116] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.44) starting as process 882
12月 28 16:35:19 elk153 mysqld[882]: 2025-12-28T08:35:19.641400Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
12月 28 16:35:19 elk153 mysqld[882]: 2025-12-28T08:35:19.753662Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
12月 28 16:35:19 elk153 mysqld[882]: 2025-12-28T08:35:19.893741Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
12月 28 16:35:19 elk153 mysqld[882]: 2025-12-28T08:35:19.893799Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connection...his channel.
12月 28 16:35:19 elk153 mysqld[882]: 2025-12-28T08:35:19.908276Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, so.../mysqlx.sock
12月 28 16:35:19 elk153 systemd[1]: Started MySQL Server 8.0.44.
12月 28 16:35:19 elk153 mysqld[882]: 2025-12-28T08:35:19.908316Z 0 [System] [MY-010931] [Server] /usr/local/mysql/bin/mysqld: ready for connections. Version: '8.0....erver - GPL.
Hint: Some lines were ellipsized, use -l to show in full.
root@elk153:~ # mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.44 MySQL Community Server - GPL

Copyright (c) 2000, 2025, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases
    -> ;
+--------------------+
| Database           |
+--------------------+
| games              |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql> exit
Bye
root@elk153:~ # systemctl stsop mysqld.service 
Unknown operation 'stsop'.
root@elk153:~ # systemctl stop mysqld.service 
root@elk153:~ # cd /data/
root@elk153:/data # cd 3306/data/
root@elk153:/data/3306/data # ll
总用量 82392
-rw-r----- 1 mysql mysql       56 12月 28 11:25 auto.cnf

root@elk153:/data/3306/data # ps -ef |grep mysql
root      30106   1670  0 16:47 pts/0    00:00:00 grep --color=auto mysql
root@elk153:/data/3306/data # systemctl start m
machine.slice      machines.target    microcode.service  
root@elk153:/data/3306/data # systemctl start m
machine.slice      machines.target    microcode.service  
root@elk153:/data/3306/data # systemctl start m
machine.slice      machines.target    microcode.service  
root@elk153:/data/3306/data # ll
总用量 94688
-rw-r----- 1 mysql mysql       56 12月 28 11:25 auto.cnf

root@elk153:/data/3306/data # tail -f elk153.
elk153.err  elk153.pid  
root@elk153:/data/3306/data # tail -f elk153.err 
2025-12-28T07:22:22.305837Z 0 [System] [MY-010910] [Server] /usr/local/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.44)  MySQL Community Server - GPL.
2025-12-28T07:23:01.052527Z 0 [System] [MY-010116] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.44) starting as process 44462
2025-12-28T07:23:01.057406Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2025-12-28T07:23:01.120218Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2025-12-28T07:23:01.252394Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2025-12-28T07:23:01.252461Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
2025-12-28T07:23:01.266869Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /tmp/mysqlx.sock
2025-12-28T07:23:01.266927Z 0 [System] [MY-010931] [Server] /usr/local/mysql/bin/mysqld: ready for connections. Version: '8.0.44'  socket: '/tmp/mysql.sock'  port: 3306  MySQL Community Server - GPL.
2025-12-28T07:23:20.956162Z 0 [System] [MY-013172] [Server] Received SHUTDOWN from user <via user signal>. Shutting down mysqld (Version: 8.0.44).
2025-12-28T07:23:21.689014Z 0 [System] [MY-010910] [Server] /usr/local/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.44)  MySQL Community Server - GPL.
^C
root@elk153:/data/3306/data # mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.44 MySQL Community Server - GPL

Copyright (c) 2000, 2025, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> select * from mysql.user;
+-----------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------------------+--------------------------+----------------------------+---------------+-------------+-----------------+----------------------+-----------------------+------------------------------------------------------------------------+------------------+-----------------------+-------------------+----------------+------------------+----------------+------------------------+---------------------+--------------------------+-----------------+
| Host      | User             | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | Event_priv | Trigger_priv | Create_tablespace_priv | ssl_type | ssl_cipher             | x509_issuer              | x509_subject               | max_questions | max_updates | max_connections | max_user_connections | plugin                | authentication_string                                                  | password_expired | password_last_changed | password_lifetime | account_locked | Create_role_priv | Drop_role_priv | Password_reuse_history | Password_reuse_time | Password_require_current | User_attributes |
+-----------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------------------+--------------------------+----------------------------+---------------+-------------+-----------------+----------------------+-----------------------+------------------------------------------------------------------------+------------------+-----------------------+-------------------+----------------+------------------+----------------+------------------------+---------------------+--------------------------+-----------------+
| localhost | mysql.infoschema | Y           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | N                | 2025-12-28 11:25:56   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| localhost | mysql.session    | N           | N           | N           | N           | N           | N         | N           | Y             | N            | N         | N          | N               | N          | N          | N            | Y          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | N                | 2025-12-28 11:25:56   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| localhost | mysql.sys        | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | N                | 2025-12-28 11:25:56   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| localhost | root             | Y           | Y           | Y           | Y           | Y           | Y         | Y           | Y             | Y            | Y         | Y          | Y               | Y          | Y          | Y            | Y          | Y                     | Y                | Y            | Y               | Y                | Y                | Y              | Y                   | Y                  | Y                | Y          | Y            | Y                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password |                                                                        | N                | 2025-12-28 11:25:56   |              NULL | N              | Y                | Y              |                   NULL |                NULL | NULL                     | NULL            |
+-----------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------------------+--------------------------+----------------------------+---------------+-------------+-----------------+----------------------+-----------------------+------------------------------------------------------------------------+------------------+-----------------------+-------------------+----------------+------------------+----------------+------------------------+---------------------+--------------------------+-----------------+
4 rows in set (0.00 sec)

mysql> select user,host,authentication_string from mysql.user;
+------------------+-----------+------------------------------------------------------------------------+
| user             | host      | authentication_string                                                  |
+------------------+-----------+------------------------------------------------------------------------+
| mysql.infoschema | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root             | localhost |                                                                        |
+------------------+-----------+------------------------------------------------------------------------+
4 rows in set (0.00 sec)

mysql> shutdown
    -> ;
    -> ;
ERROR 4031 (HY000): The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior.
No connection. Trying to reconnect...
Connection id:    9
Current database: *** NONE ***

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';' at line 2
mysql> shutdown;
    -> shutdown;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'shutdown;
shutdown' at line 1
mysql> shutdown;
Query OK, 0 rows affected (0.00 sec)

mysql> exit;
Bye
root@elk153:/data/3306/data # mysql
mysql                      mysql_config               mysqld_multi               mysqlimport                mysqlshow                  mysql_upgrade
mysqladmin                 mysql_config_editor        mysqld_safe                mysql_migrate_keyring      mysqlslap                  
mysqlbinlog                mysqld                     mysqldump                  mysqlpump                  mysql_ssl_rsa_setup        
mysqlcheck                 mysqld-debug               mysqldumpslow              mysql_secure_installation  mysql_tzinfo_to_sql        
root@elk153:/data/3306/data # mysql
mysql                      mysql_config               mysqld_multi               mysqlimport                mysqlshow                  mysql_upgrade
mysqladmin                 mysql_config_editor        mysqld_safe                mysql_migrate_keyring      mysqlslap                  
mysqlbinlog                mysqld                     mysqldump                  mysqlpump                  mysql_ssl_rsa_setup        
mysqlcheck                 mysqld-debug               mysqldumpslow              mysql_secure_installation  mysql_tzinfo_to_sql        
root@elk153:/data/3306/data # mysqladmin -uroot password 'root'
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'
Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists!
root@elk153:/data/3306/data # ps -ef |grep mysql
root      52197   1670  0 08:38 pts/0    00:00:00 grep --color=auto mysql
root@elk153:/data/3306/data # systemctl start mysqld.service 
Display all 147 possibilities? (y or n)
root@elk153:/data/3306/data # systemctl start mysqld.service 
root@elk153:/data/3306/data # mysqladmin -uroot password 'root'
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
root@elk153:/data/3306/data # history 

  
   84  rz 
   85  tar xz mysql-8.0.44-linux-glibc2.17-x86_64.tar.xz 
   86  ll 
   87  tar xf  mysql-8.0.44-linux-glibc2.17-x86_64.tar.xz 
   88  ll
   89  ln -s mysql-8.0.44-linux-glibc2.17-x86_64 mysql
   90  ll
   91  vim /etc/profile
   92  cat /etc/profile
   93  source /etc/profile
   94  mysql -V
   95  vim /etc/profile
   96  source /etc/profile
   97  mysql -V
   98  vim /etc/profile
   99  source /etc/profile
  100  mysql -V
  101  /data -d
  102  mkdir /data/3306/data
  103  mkdir -r  /data/3306/data
  104  mkdir --help
  105  mkdir -p  /data/3306/data

  117  ll /usr/local/mysql/support-files/mysql.server -d
  118  file /usr/local/mysql/support-files/mysql.server
  119  cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
  122  head -10 /usr/local/mysql/support-files/mysql.server
  123  head -20 /usr/local/mysql/support-files/mysql.server
  124  cat  /usr/local/mysql/support-files/mysql.server
  125  /etc/init.d/mysqld start
  126  /etc/init.d/mysqld status
  127  /etc/init.d/mysqld start
  128  /etc/init.d/mysqld status
  129  ps -ef |grep mysql
  130  ss -ntl |grep mysql
  132  ss -ntl |grep 3306
  133  mysql
  135  cat /usr/local/mysql/data/elk153.err
  136  cd  /usr/local/mysql/data/elk153.err
  137  ll /usr/local/mysql/data/elk153.err
  # 138  cat > /etc/my.cnf <<eof
  # 139  [mysql]
  # 140  socket=/tmp/mysql.sock
  # 141  [mysqld]
  # 142  user=mysql
  # 143  basedir=/usr/local/mysql
  # 144  datadir=/data/3306/data
  # 145  socket=/tmp/mysql.sock
  # 146  eof
  147  ll /etc/my.cnf 
  148  set +o history;
  149  cd /data/3306/data/
  150  ll
  151  -d 
  152  ll -d
  153  useradd mysql -M -s /sbin/nologin
  154  mysql id
  155  id mysql
  156  chown mysql:mysql /data/3306/data/
  157  ll /data/3306/data/
  158   /data/3306/data/ -d
  159  ll  /data/3306/data/
  160  ll  /data/3306/
  161  mysqld initaliza-insecure --user=mysql --datadir=/data/3306/data basedir=/usr/local/mysql
  162  mysqld initaliza-insecure --user=mysql --datadir=/data/3306/data --basedir=/usr/local/mysql
  163  mysqld
  164  ll /data/3306/data/
  165  rm -rf /data/3306/data/*
  166  ll /data/3306/data/
  167  mysqld initaliza-insecure --user=mysql --datadir=/data/3306/data --basedir=/usr/local/mysql
  168  ll /data/3306/
  169  /usr/local/mysql/bin/mysqld --version
  170  mysqld initalize-insecure --user=mysql --datadir=/data/3306/data --basedir=/usr/local/mysql
  171  ll
  172  rm -rf /data/3306/data/*
  173  mysqld --initalize-insecure --user=mysql --datadir=/data/3306/data --basedir=/usr/local/mysql
  174  rm -rf /data/3306/data/*
  175  mysqld --initalize-insecure --user=mysql --datadir=/data/3306/data --basedir=/usr/local/mysql
  176  rm -rf /data/3306/data/*
  177  /usr/local/mysql/bin/mysqld   --initialize-insecure   --user=mysql   --datadir=/data/3306/data   --basedir=/usr/local/mysql
  178  ll
  179  rm -rf /data/3306/data/*
  180  mysqld --initialize-insecure --user=mysql --datadir=/data/3306/data --basedir=/usr/local/mysql
  181  ll
  182  cd /etc/init.d/
  183  ll
  184  file mysqld 
  185  ll -d  mysqld 
  186  mysqld stop
  187  mysqld status
  188  export LANG="en_US";export LANGUAGE="en_US";export LC_ALL="en_US";top
  189  cd /etc/init.d/
  191  ps -ef | grep mysql
  195  kill -9  77783
  196  ps -ef | grep mysql
  197  mysqld status
  198  set +o history;
  199  history 
  200  systemctl status mysqld.service 
  201  mysql
  202  systemctl stsop mysqld.service 
  203  systemctl stop mysqld.service 
  204  cd /data/
  205  cd 3306/data/
  206  ll
  207  ps -ef |grep mysql
  208  ll
  209  tail -f elk153.err 
  210  mysql
  211  mysqladmin -uroot password 'root'
  212  ps -ef |grep mysql
  213  systemctl start mysqld.service 
  214  mysqladmin -uroot password 'root'
  215  history 
root@elk153:/data/3306/data # 
root@elk153:/data/3306/data # hisory -c
-bash: hisory: 未找到命令
root@elk153:/data/3306/data # hisory -C
-bash: hisory: 未找到命令
root@elk153:/data/3306/data # hisory c
-bash: hisory: 未找到命令
root@elk153:/data/3306/data # history -C
-bash: history: -C: 无效选项
history: 用法:history [-c] [-d 偏移量] [n] 或 history -anrw [文件名] 或 history -ps 参数 [参数...]
root@elk153:/data/3306/data # history -c
root@elk153:/data/3306/data # history 
   21  history 
root@elk153:/data/3306/data # mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.44 MySQL Community Server - GPL

Copyright (c) 2000, 2025, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> exit
Bye
root@elk153:/data/3306/data # mysql -u root -p
Enter password: 


mysql> show processlist;
+----+-----------------+-----------+------+---------+------+------------------------+------------------+
| Id | User            | Host      | db   | Command | Time | State                  | Info             |
+----+-----------------+-----------+------+---------+------+------------------------+------------------+
|  5 | event_scheduler | localhost | NULL | Daemon  |  524 | Waiting on empty queue | NULL             |
| 12 | root            | localhost | NULL | Query   |    0 | init                   | show processlist |
+----+-----------------+-----------+------+---------+------+------------------------+------------------+
2 rows in set, 1 warning (0.00 sec)

mysql> show privileges;
+------------------------------+---------------------------------------+-------------------------------------------------------+
| Privilege                    | Context                               | Comment                                               |
+------------------------------+---------------------------------------+-------------------------------------------------------+
| Alter                        | Tables                                | To alter the table                                    |
| Alter routine                | Functions,Procedures                  | To alter or drop stored functions/procedures          |
| Create                       | Databases,Tables,Indexes              | To create new databases and tables                    |
| Create routine               | Databases                             | To use CREATE FUNCTION/PROCEDURE                      |
| Create role                  | Server Admin                          | To create new roles                                   |
| Create temporary tables      | Databases                             | To use CREATE TEMPORARY TABLE                         |
| Create view                  | Tables                                | To create new views                                   |
| Create user                  | Server Admin                          | To create new users                                   |
| Delete                       | Tables                                | To delete existing rows                               |
| Drop                         | Databases,Tables                      | To drop databases, tables, and views                  |
| Drop role                    | Server Admin                          | To drop roles                                         |
| Event                        | Server Admin                          | To create, alter, drop and execute events             |
| Execute                      | Functions,Procedures                  | To execute stored routines                            |
| File                         | File access on server                 | To read and write files on the server                 |
| Grant option                 | Databases,Tables,Functions,Procedures | To give to other users those privileges you possess   |
| Index                        | Tables                                | To create or drop indexes                             |
| Insert                       | Tables                                | To insert data into tables                            |
| Lock tables                  | Databases                             | To use LOCK TABLES (together with SELECT privilege)   |
| Process                      | Server Admin                          | To view the plain text of currently executing queries |
| Proxy                        | Server Admin                          | To make proxy user possible                           |
| References                   | Databases,Tables                      | To have references on tables                          |
| Reload                       | Server Admin                          | To reload or refresh tables, logs and privileges      |
| Replication client           | Server Admin                          | To ask where the slave or master servers are          |
| Replication slave            | Server Admin                          | To read binary log events from the master             |
| Select                       | Tables                                | To retrieve rows from table                           |
| Show databases               | Server Admin                          | To see all databases with SHOW DATABASES              |
| Show view                    | Tables                                | To see views with SHOW CREATE VIEW                    |
| Shutdown                     | Server Admin                          | To shut down the server                               |
| Super                        | Server Admin                          | To use KILL thread, SET GLOBAL, CHANGE MASTER, etc.   |
| Trigger                      | Tables                                | To use triggers                                       |
| Create tablespace            | Server Admin                          | To create/alter/drop tablespaces                      |
| Update                       | Tables                                | To update existing rows                               |
| Usage                        | Server Admin                          | No privileges - allow connect only                    |
| XA_RECOVER_ADMIN             | Server Admin                          |                                                       |
| TELEMETRY_LOG_ADMIN          | Server Admin                          |                                                       |
| SHOW_ROUTINE                 | Server Admin                          |                                                       |
| SET_USER_ID                  | Server Admin                          |                                                       |
| SENSITIVE_VARIABLES_OBSERVER | Server Admin                          |                                                       |
| RESOURCE_GROUP_USER          | Server Admin                          |                                                       |
| PASSWORDLESS_USER_ADMIN      | Server Admin                          |                                                       |
| INNODB_REDO_LOG_ENABLE       | Server Admin                          |                                                       |
| CONNECTION_ADMIN             | Server Admin                          |                                                       |
| AUTHENTICATION_POLICY_ADMIN  | Server Admin                          |                                                       |
| AUDIT_ABORT_EXEMPT           | Server Admin                          |                                                       |
| REPLICATION_APPLIER          | Server Admin                          |                                                       |
| INNODB_REDO_LOG_ARCHIVE      | Server Admin                          |                                                       |
| SERVICE_CONNECTION_ADMIN     | Server Admin                          |                                                       |
| CLONE_ADMIN                  | Server Admin                          |                                                       |
| PERSIST_RO_VARIABLES_ADMIN   | Server Admin                          |                                                       |
| FLUSH_USER_RESOURCES         | Server Admin                          |                                                       |
| RESOURCE_GROUP_ADMIN         | Server Admin                          |                                                       |
| REPLICATION_SLAVE_ADMIN      | Server Admin                          |                                                       |
| BACKUP_ADMIN                 | Server Admin                          |                                                       |
| GROUP_REPLICATION_ADMIN      | Server Admin                          |                                                       |
| FIREWALL_EXEMPT              | Server Admin                          |                                                       |
| SYSTEM_VARIABLES_ADMIN       | Server Admin                          |                                                       |
| AUDIT_ADMIN                  | Server Admin                          |                                                       |
| APPLICATION_PASSWORD_ADMIN   | Server Admin                          |                                                       |
| SYSTEM_USER                  | Server Admin                          |                                                       |
| ENCRYPTION_KEY_ADMIN         | Server Admin                          |                                                       |
| FLUSH_STATUS                 | Server Admin                          |                                                       |
| GROUP_REPLICATION_STREAM     | Server Admin                          |                                                       |
| BINLOG_ADMIN                 | Server Admin                          |                                                       |
| ROLE_ADMIN                   | Server Admin                          |                                                       |
| SESSION_VARIABLES_ADMIN      | Server Admin                          |                                                       |
| BINLOG_ENCRYPTION_ADMIN      | Server Admin                          |                                                       |
| FLUSH_OPTIMIZER_COSTS        | Server Admin                          |                                                       |
| TABLE_ENCRYPTION_ADMIN       | Server Admin                          |                                                       |
| FLUSH_TABLES                 | Server Admin                          |                                                       |
+------------------------------+---------------------------------------+-------------------------------------------------------+
69 rows in set (0.00 sec)

mysql> ? grant;
Name: 'GRANT'
Description:
Syntax:
GRANT
    priv_type [(column_list)]
      [, priv_type [(column_list)]] ...
    ON [object_type] priv_level
    TO user_or_role [, user_or_role] ...
    [WITH GRANT OPTION]
    [AS user
        [WITH ROLE
            DEFAULT
          | NONE
          | ALL
          | ALL EXCEPT role [, role ] ...
          | role [, role ] ...
        ]
    ]
}


root@elk153:/usr/local/mysql # sz m
man/       mysql.txt  
root@elk153:/usr/local/mysql # sz mysql.txt 
OOroot@elk153:/usr/local/mysql # mysql
mysql                      mysql_config               mysqld_multi               mysqlimport                mysqlshow                  mysql_upgrade
mysqladmin                 mysql_config_editor        mysqld_safe                mysql_migrate_keyring      mysqlslap                  
mysqlbinlog                mysqld                     mysqldump                  mysqlpump                  mysql_ssl_rsa_setup        
mysqlcheck                 mysqld-debug               mysqldumpslow              mysql_secure_installation  mysql_tzinfo_to_sql        
root@elk153:/usr/local/mysql # mysql -V
mysql  Ver 8.0.44 for Linux on x86_64 (MySQL Community Server - GPL)
root@elk153:/usr/local/mysql #  ls -Z | grep mysql
-rw-r--r-- root root  ?                                mysql.txt
root@elk153:/usr/local/mysql # cd ..
root@elk153:/usr/local #  ls -Z | grep mysql
lrwxrwxrwx  root root ?                                mysql -> mysql-8.0.44-linux-glibc2.17-x86_64
drwxr-xr-x  root root ?                                mysql-8.0.44-linux-glibc2.17-x86_64
-r--------  root root ?                                mysql-8.0.44-linux-glibc2.17-x86_64.tar.xz
root@elk153:/usr/local # mysqld --initialize --user=mysql --datadir=/data/3306/data --basedir=/usr/local/mysql
2025-12-29T07:55:15.195988Z 0 [System] [MY-013169] [Server] /usr/local/mysql-8.0.44-linux-glibc2.17-x86_64/bin/mysqld (mysqld 8.0.44) initializing of server in progress as process 37933
2025-12-29T07:55:15.197126Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
2025-12-29T07:55:15.197133Z 0 [ERROR] [MY-013236] [Server] The designated data directory /data/3306/data/ is unusable. You can remove all files that the server added to it.
2025-12-29T07:55:15.197167Z 0 [ERROR] [MY-010119] [Server] Aborting
2025-12-29T07:55:15.197345Z 0 [System] [MY-010910] [Server] /usr/local/mysql-8.0.44-linux-glibc2.17-x86_64/bin/mysqld: Shutdown complete (mysqld 8.0.44)  MySQL Community Server - GPL.
root@elk153:/usr/local # 
连接断开
连接主机...
连接主机成功
Last login: Sun Dec 28 16:35:56 2025 from 10.0.0.1
root@elk153:~ # 
root@elk153:~ # ps -ef | grep mysql
root      13819 123205  0 17:08 pts/4    00:00:00 grep --color=auto mysql
mysql     52889      1  0 08:56 ?        00:02:50 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
root@elk153:~ # systemctl status c
chronyd.service        console-getty.service  cpupower.service       cryptsetup-pre.target  ctrl-alt-del.target
chrony-wait.service    console-shell.service  crond.service          cryptsetup.target      
root@elk153:~ # systemctl status mysqld.service 
● mysqld.service - MySQL Server 8.0.44
   Loaded: loaded (/etc/systemd/system/mysqld.service; disabled; vendor preset: disabled)
   Active: active (running) since 一 2025-12-29 08:38:56 CST; 8h ago
 Main PID: 52889 (mysqld)
   Status: "Server is operational"
   CGroup: /system.slice/mysqld.service
           └─52889 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf

12月 29 08:38:56 elk153 systemd[1]: Starting MySQL Server 8.0.44...
12月 29 08:38:56 elk153 mysqld[52889]: 2025-12-29T00:38:56.501056Z 0 [System] [MY-010116] [Server] /usr/local/m...52889
12月 29 08:38:56 elk153 mysqld[52889]: 2025-12-29T00:38:56.506399Z 1 [System] [MY-013576] [InnoDB] InnoDB initi...rted.
12月 29 08:38:56 elk153 mysqld[52889]: 2025-12-29T00:38:56.589374Z 1 [System] [MY-013577] [InnoDB] InnoDB initi...nded.
12月 29 08:38:56 elk153 mysqld[52889]: 2025-12-29T00:38:56.724161Z 0 [Warning] [MY-010068] [Server] CA certific...gned.
12月 29 08:38:56 elk153 mysqld[52889]: 2025-12-29T00:38:56.724205Z 0 [System] [MY-013602] [Server] Channel mysq...nnel.
12月 29 08:38:56 elk153 mysqld[52889]: 2025-12-29T00:38:56.738988Z 0 [System] [MY-011323] [Server] X Plugin rea....sock
12月 29 08:38:56 elk153 systemd[1]: Started MySQL Server 8.0.44.
12月 29 08:38:56 elk153 mysqld[52889]: 2025-12-29T00:38:56.738997Z 0 [System] [MY-010931] [Server] /usr/local/m... GPL.
Hint: Some lines were ellipsized, use -l to show in full.
root@elk153:~ # systemctl stop mysqld.service 
root@elk153:~ # mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
root@elk153:~ # mysql
mysql                      mysqld                     mysqlimport                mysql_ssl_rsa_setup
mysqladmin                 mysqld-debug               mysql_migrate_keyring      mysql_tzinfo_to_sql
mysqlbinlog                mysqld_multi               mysqlpump                  mysql_upgrade
mysqlcheck                 mysqld_safe                mysql_secure_installation  
mysql_config               mysqldump                  mysqlshow                  
mysql_config_editor        mysqldumpslow              mysqlslap                  
root@elk153:~ # mysql -u root -p 
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
root@elk153:~ # systemctl start mysqld.service 
^[[Aroot@elk153:mysql -u root -pvice 
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
root@elk153:~ # mysql -u root -p 
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.44 MySQL Community Server - GPL

Copyright (c) 2000, 2025, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> shutdown
    -> ;
Query OK, 0 rows affected (0.00 sec)

mysql> exit;
Bye
root@elk153:~ # ps -ef | grep mysql
root      16376 123205  0 17:10 pts/4    00:00:00 grep --color=auto mysql
root@elk153:~ # /usr/local/mysql/bin/mysqld_safe \
>   --datadir=/data/3306/data \
>   --skip-grant-tables \
>   --skip-networking \
>   &
[1] 17207
root@elk153:~ # 2025-12-29T09:10:45.559208Z mysqld_safe Logging to '/data/3306/data/elk153.err'.
2025-12-29T09:10:45.578034Z mysqld_safe Starting mysqld daemon with databases from /data/3306/data

root@elk153:~ # mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 8.0.44 MySQL Community Server - GPL

Copyright (c) 2000, 2025, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> ^C
mysql> alter user 'root'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye
root@elk153:~ # mysql -u root -p 
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.44 MySQL Community Server - GPL

Copyright (c) 2000, 2025, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> exit;
Bye
root@elk153:~ # ps -ef | grep mysql
root      17207 123205  0 17:10 pts/4    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/3306/data --skip-grant-tables --skip-networking
mysql     17366  17207  0 17:10 pts/4    00:00:02 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/3306/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --skip-grant-tables --skip-networking --log-error=elk153.err --pid-file=elk153.pid --socket=/tmp/mysql.sock
root      23676 123205  0 17:15 pts/4    00:00:00 grep --color=auto mysql
root@elk153:~ # ps -ef | grep mysql\
> 
root      17207 123205  0 17:10 pts/4    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/3306/data --skip-grant-tables --skip-networking
mysql     17366  17207  0 17:10 pts/4    00:00:08 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/3306/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --skip-grant-tables --skip-networking --log-error=elk153.err --pid-file=elk153.pid --socket=/tmp/mysql.sock
root      46485 123205  0 17:34 pts/4    00:00:00 grep --color=auto mysql
root@elk153:~ # 
root@elk153:~ # mysql -u root -p 
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 8.0.44 MySQL Community Server - GPL

Copyright (c) 2000, 2025, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| games              |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.01 sec)

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+------------------------------------------------------+
| Tables_in_mysql                                      |
+------------------------------------------------------+
| columns_priv                                         |
| component                                            |
| db                                                   |
| default_roles                                        |
| engine_cost                                          |
| func                                                 |
| general_log                                          |
| global_grants                                        |
| gtid_executed                                        |
| help_category                                        |
| help_keyword                                         |
| help_relation                                        |
| help_topic                                           |
| innodb_index_stats                                   |
| innodb_table_stats                                   |
| ndb_binlog_index                                     |
| password_history                                     |
| plugin                                               |
| procs_priv                                           |
| proxies_priv                                         |
| replication_asynchronous_connection_failover         |
| replication_asynchronous_connection_failover_managed |
| replication_group_configuration_version              |
| replication_group_member_actions                     |
| role_edges                                           |
| server_cost                                          |
| servers                                              |
| slave_master_info                                    |
| slave_relay_log_info                                 |
| slave_worker_info                                    |
| slow_log                                             |
| tables_priv                                          |
| time_zone                                            |
| time_zone_leap_second                                |
| time_zone_name                                       |
| time_zone_transition                                 |
| time_zone_transition_type                            |
| user                                                 |
+------------------------------------------------------+
38 rows in set (0.00 sec)

mysql> shutdown;
Query OK, 0 rows affected (0.00 sec)

mysql> 2025-12-29T09:40:34.790983Z mysqld_safe mysqld from pid file /data/3306/data/elk153.pid ended


mysql> exit;
Bye
[1]+  完成                  /usr/local/mysql/bin/mysqld_safe --datadir=/data/3306/data --skip-grant-tables --skip-networking
root@elk153:~ # systemctl start mysqld.service 
root@elk153:~ # mysql -u root -p 
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.44 MySQL Community Server - GPL

Copyright (c) 2000, 2025, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> select user, host from mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)

mysql> select user();
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

mysql> show processlist;
+----+-----------------+----------------+------+---------+-------+------------------------+------------------+
| Id | User            | Host           | db   | Command | Time  | State                  | Info             |
+----+-----------------+----------------+------+---------+-------+------------------------+------------------+
|  5 | event_scheduler | localhost      | NULL | Daemon  | 13446 | Waiting on empty queue | NULL             |
|  9 | root            | localhost      | NULL | Query   |     0 | init                   | show processlist |
| 13 | test02          | 10.0.0.1:65133 | NULL | Sleep   |   736 |                        | NULL             |
+----+-----------------+----------------+------+---------+-------+------------------------+------------------+
3 rows in set, 1 warning (0.00 sec)

mysql>  select user, host from mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| test02           | 10.0.0.%  |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
5 rows in set (0.00 sec)

mysql> CREATE USER 'test01'@'10.0.0.%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE USER 'test03'@'10.0.0.%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.01 sec)

mysql>  select user, host from mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| test01           | 10.0.0.%  |
| test02           | 10.0.0.%  |
| test03           | 10.0.0.%  |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
7 rows in set (0.00 sec)

mysql> delete from mysql.user where user='test02' or user='test03';
Query OK, 2 rows affected (0.01 sec)

mysql>  select user, host from mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| test01           | 10.0.0.%  |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
5 rows in set (0.00 sec)

mysql> 
mysql> 
mysql> select user,host,plugin from mysql.user;
+------------------+-----------+-----------------------+
| user             | host      | plugin                |
+------------------+-----------+-----------------------+
| test01           | 10.0.0.%  | caching_sha2_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session    | localhost | caching_sha2_password |
| mysql.sys        | localhost | caching_sha2_password |
| root             | localhost | caching_sha2_password |
+------------------+-----------+-----------------------+
5 rows in set (0.00 sec)

mysql> select user,host,plugin,authentication_string from mysql.user;
+------------------+-----------+-----------------------+------------------------------------------------------------------------+
| user             | host      | plugin                | authentication_string                                                  |
+------------------+-----------+-----------------------+------------------------------------------------------------------------+
| test01           | 10.0.0.%  | caching_sha2_password | $A$005$j%9
                                                                   @}/  8j=Jd}",Dx9QwczuaoTc5UAeJ6W2B.x4rnHRx4O8rNLboR8Tx07 |
| mysql.infoschema | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root             | localhost | caching_sha2_password | $A$005$*U&C]WLs|bTl^m
                                                                              MQOT71vzrEuJcdyVqIMKf6XVLLMw1Hu3bbEh66n6yhG8 |
+------------------+-----------+-----------------------+------------------------------------------------------------------------+
5 rows in set (0.00 sec)

mysql>  CREATE USER 'test03'@'10.0.0.%' IDENTIFIED BY '123456';
ERROR 1396 (HY000): Operation CREATE USER failed for 'test03'@'10.0.0.%'
mysql> 
mysql>  FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host,plugin,authentication_string from mysql.user;
+------------------+-----------+-----------------------+------------------------------------------------------------------------+
| user             | host      | plugin                | authentication_string                                                  |
+------------------+-----------+-----------------------+------------------------------------------------------------------------+
| test01           | 10.0.0.%  | caching_sha2_password | $A$005$j%9
                                                                   @}/  8j=Jd}",Dx9QwczuaoTc5UAeJ6W2B.x4rnHRx4O8rNLboR8Tx07 |
| mysql.infoschema | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root             | localhost | caching_sha2_password | $A$005$*U&C]WLs|bTl^m
                                                                              MQOT71vzrEuJcdyVqIMKf6XVLLMw1Hu3bbEh66n6yhG8 |
+------------------+-----------+-----------------------+------------------------------------------------------------------------+
5 rows in set (0.00 sec)

mysql> CREATE USER 'test03'@'10.0.0.%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.01 sec)

mysql>  FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE USER 'test03'@'10.0.0.%' IDENTIFIED BY '123456';
ERROR 1396 (HY000): Operation CREATE USER failed for 'test03'@'10.0.0.%'
mysql> create user 'test02'@'10.0.0.%' identified with mysql_native_password by '123456aa';
Query OK, 0 rows affected (0.00 sec)

mysql>  FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host,plugin,authentication_string from mysql.user;
+------------------+-----------+-----------------------+------------------------------------------------------------------------+
| user             | host      | plugin                | authentication_string                                                  |
+------------------+-----------+-----------------------+------------------------------------------------------------------------+
| test01           | 10.0.0.%  | caching_sha2_password | $A$005$j%9
                                                                   @}/  8j=Jd}",Dx9QwczuaoTc5UAeJ6W2B.x4rnHRx4O8rNLboR8Tx07 |
| test02           | 10.0.0.%  | mysql_native_password | *87609CDD5E019014203F348B79B8DD25596B65D5                              |
| test03           | 10.0.0.%  | caching_sha2_password | $A$005$3-we}myT"PK+#]v&xMomLhw/.iyQckTx9ZQjPGnEIXvIYV29xsyegc.F6/A |
| mysql.infoschema | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root             | localhost | caching_sha2_password | $A$005$*U&C]WLs|bTl^m
                                                                              MQOT71vzrEuJcdyVqIMKf6XVLLMw1Hu3bbEh66n6yhG8 |
+------------------+-----------+-----------------------+------------------------------------------------------------------------+
7 rows in set (0.00 sec)

mysql> drop user test02@'10.0.0.%';
Query OK, 0 rows affected (0.00 sec)

mysql>  FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host,plugin,authentication_string from mysql.user;
+------------------+-----------+-----------------------+------------------------------------------------------------------------+
| user             | host      | plugin                | authentication_string                                                  |
+------------------+-----------+-----------------------+------------------------------------------------------------------------+
| test01           | 10.0.0.%  | caching_sha2_password | $A$005$j%9
                                                                   @}/  8j=Jd}",Dx9QwczuaoTc5UAeJ6W2B.x4rnHRx4O8rNLboR8Tx07 |
| test03           | 10.0.0.%  | caching_sha2_password | $A$005$3-we}myT"PK+#]v&xMomLhw/.iyQckTx9ZQjPGnEIXvIYV29xsyegc.F6/A |
| mysql.infoschema | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root             | localhost | caching_sha2_password | $A$005$*U&C]WLs|bTl^m
                                                                              MQOT71vzrEuJcdyVqIMKf6XVLLMw1Hu3bbEh66n6yhG8 |
+------------------+-----------+-----------------------+------------------------------------------------------------------------+
6 rows in set (0.00 sec)

mysql> show grants for root@'localhost';
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE ON *.* TO `root`@`localhost` WITH GRANT OPTION                                                                                                                                                                                                                                                                                                                                                                                     |
| GRANT APPLICATION_PASSWORD_ADMIN,AUDIT_ABORT_EXEMPT,AUDIT_ADMIN,AUTHENTICATION_POLICY_ADMIN,BACKUP_ADMIN,BINLOG_ADMIN,BINLOG_ENCRYPTION_ADMIN,CLONE_ADMIN,CONNECTION_ADMIN,ENCRYPTION_KEY_ADMIN,FIREWALL_EXEMPT,FLUSH_OPTIMIZER_COSTS,FLUSH_STATUS,FLUSH_TABLES,FLUSH_USER_RESOURCES,GROUP_REPLICATION_ADMIN,GROUP_REPLICATION_STREAM,INNODB_REDO_LOG_ARCHIVE,INNODB_REDO_LOG_ENABLE,PASSWORDLESS_USER_ADMIN,PERSIST_RO_VARIABLES_ADMIN,REPLICATION_APPLIER,REPLICATION_SLAVE_ADMIN,RESOURCE_GROUP_ADMIN,RESOURCE_GROUP_USER,ROLE_ADMIN,SENSITIVE_VARIABLES_OBSERVER,SERVICE_CONNECTION_ADMIN,SESSION_VARIABLES_ADMIN,SET_USER_ID,SHOW_ROUTINE,SYSTEM_USER,SYSTEM_VARIABLES_ADMIN,TABLE_ENCRYPTION_ADMIN,TELEMETRY_LOG_ADMIN,XA_RECOVER_ADMIN ON *.* TO `root`@`localhost` WITH GRANT OPTION |
| GRANT PROXY ON ``@`` TO `root`@`localhost` WITH GRANT OPTION                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
3 rows in set (0.00 sec)

mysql> show privileges;
+------------------------------+---------------------------------------+-------------------------------------------------------+
| Privilege                    | Context                               | Comment                                               |
+------------------------------+---------------------------------------+-------------------------------------------------------+
| Alter                        | Tables                                | To alter the table                                    |

mysql> alter user test01@'10.0.0.153' account lock;
ERROR 1396 (HY000): Operation ALTER USER failed for 'test01'@'10.0.0.153'
mysql> select user,host,plugin,authentication_string from mysql.user;
+------------------+-----------+-----------------------+------------------------------------------------------------------------+
| user             | host      | plugin                | authentication_string                                                  |
+------------------+-----------+-----------------------+------------------------------------------------------------------------+
| test01           | 10.0.0.%  | caching_sha2_password | $A$005$j%9
                                                                   @}/  8j=Jd}",Dx9QwczuaoTc5UAeJ6W2B.x4rnHRx4O8rNLboR8Tx07 |
| test03           | 10.0.0.%  | caching_sha2_password | $A$005$3-we}myT"PK+#]v&xMomLhw/.iyQckTx9ZQjPGnEIXvIYV29xsyegc.F6/A |
| mysql.infoschema | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root             | localhost | caching_sha2_password | $A$005$*U&C]WLs|bTl^m
                                                                              MQOT71vzrEuJcdyVqIMKf6XVLLMw1Hu3bbEh66n6yhG8 |
+------------------+-----------+-----------------------+------------------------------------------------------------------------+
6 rows in set (0.00 sec)

mysql> alter user test01@'10.0.0.%' account lock;
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host,account_locked,plugin,authentication_string from mysql.user;
+------------------+-----------+----------------+-----------------------+------------------------------------------------------------------------+
| user             | host      | account_locked | plugin                | authentication_string                                                  |
+------------------+-----------+----------------+-----------------------+------------------------------------------------------------------------+
| test01           | 10.0.0.%  | Y              | caching_sha2_password | $A$005$j%9
                                                                                    @}/ 8j=Jd}",Dx9QwczuaoTc5UAeJ6W2B.x4rnHRx4O8rNLboR8Tx07 |
| test03           | 10.0.0.%  | N              | caching_sha2_password | $A$005$3-we}myT"PK+#]v&xMomLhw/.iyQckTx9ZQjPGnEIXvIYV29xsyegc.F6/A |
| mysql.infoschema | localhost | Y              | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | localhost | Y              | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | localhost | Y              | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root             | localhost | N              | caching_sha2_password | $A$005$*U&C]WLs|bTl^m
                                                                                               MQOT71vzrEuJcdyVqIMKf6XVLLMw1Hu3bbEh66n6yhG8 |
+------------------+-----------+----------------+-----------------------+------------------------------------------------------------------------+
6 rows in set (0.00 sec)

mysql> SHOW PLUGINS;
+----------------------------------+----------+--------------------+---------+---------+
| Name                             | Status   | Type               | Library | License |
+----------------------------------+----------+--------------------+---------+---------+
| binlog                           | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| mysql_native_password            | ACTIVE   | AUTHENTICATION     | NULL    | GPL     |
| sha256_password                  | ACTIVE   | AUTHENTICATION     | NULL    | GPL     |
| caching_sha2_password            | ACTIVE   | AUTHENTICATION     | NULL    | GPL     |
| sha2_cache_cleaner               | ACTIVE   | AUDIT              | NULL    | GPL     |
| daemon_keyring_proxy_plugin      | ACTIVE   | DAEMON             | NULL    | GPL     |
| CSV                              | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| MEMORY                           | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| InnoDB                           | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| INNODB_TRX                       | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMP                       | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMP_RESET                 | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMPMEM                    | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMPMEM_RESET              | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMP_PER_INDEX             | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMP_PER_INDEX_RESET       | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_BUFFER_PAGE               | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_BUFFER_PAGE_LRU           | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_BUFFER_POOL_STATS         | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_TEMP_TABLE_INFO           | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_METRICS                   | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_FT_DEFAULT_STOPWORD       | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_FT_DELETED                | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_FT_BEING_DELETED          | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_FT_CONFIG                 | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_FT_INDEX_CACHE            | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_FT_INDEX_TABLE            | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_TABLES                    | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_TABLESTATS                | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_INDEXES                   | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_TABLESPACES               | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_COLUMNS                   | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_VIRTUAL                   | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CACHED_INDEXES            | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SESSION_TEMP_TABLESPACES  | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| MyISAM                           | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| MRG_MYISAM                       | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| PERFORMANCE_SCHEMA               | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| TempTable                        | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| ARCHIVE                          | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| BLACKHOLE                        | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| FEDERATED                        | DISABLED | STORAGE ENGINE     | NULL    | GPL     |
| ndbcluster                       | DISABLED | STORAGE ENGINE     | NULL    | GPL     |
| ndbinfo                          | DISABLED | STORAGE ENGINE     | NULL    | GPL     |
| ndb_transid_mysql_connection_map | DISABLED | INFORMATION SCHEMA | NULL    | GPL     |
| ngram                            | ACTIVE   | FTPARSER           | NULL    | GPL     |
| mysqlx_cache_cleaner             | ACTIVE   | AUDIT              | NULL    | GPL     |
| mysqlx                           | ACTIVE   | DAEMON             | NULL    | GPL     |
+----------------------------------+----------+--------------------+---------+---------+
48 rows in set (0.00 sec)

mysql> SELECT * FROM information_schema.plugins WHERE plugin_type = 'AUTHENTICATION';
+-----------------------+----------------+---------------+----------------+---------------------+----------------+------------------------+--------------------+--------------------------------+----------------+-------------+
| PLUGIN_NAME           | PLUGIN_VERSION | PLUGIN_STATUS | PLUGIN_TYPE    | PLUGIN_TYPE_VERSION | PLUGIN_LIBRARY | PLUGIN_LIBRARY_VERSION | PLUGIN_AUTHOR      | PLUGIN_DESCRIPTION             | PLUGIN_LICENSE | LOAD_OPTION |
+-----------------------+----------------+---------------+----------------+---------------------+----------------+------------------------+--------------------+--------------------------------+----------------+-------------+
| mysql_native_password | 1.1            | ACTIVE        | AUTHENTICATION | 2.1                 | NULL           | NULL                   | Oracle Corporation | Native MySQL authentication    | GPL            | FORCE       |
| sha256_password       | 1.1            | ACTIVE        | AUTHENTICATION | 2.1                 | NULL           | NULL                   | Oracle Corporation | SHA256 password authentication | GPL            | FORCE       |
| caching_sha2_password | 1.0            | ACTIVE        | AUTHENTICATION | 2.1                 | NULL           | NULL                   | Oracle Corporation | Caching sha2 authentication    | GPL            | FORCE       |
+-----------------------+----------------+---------------+----------------+---------------------+----------------+------------------------+--------------------+--------------------------------+----------------+-------------+
3 rows in set (0.01 sec)

mysql> 
连接断开


root@elk153:~ # mysql -u root -p 


mysql> CREATE USER 'dba01'@'%' IDENTIFIED BY '12345';
Query OK, 0 rows affected (0.01 sec)

mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON blog_db.* TO 'dba01'@'%';
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW GRANTS FOR 'dba01'@'%';
+--------------------------------------------------------------------+
| Grants for dba01@%                                                 |
+--------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `dba01`@`%`                                  |
| GRANT SELECT, INSERT, UPDATE, DELETE ON `blog_db`.* TO `dba01`@`%` |
+--------------------------------------------------------------------+
2 rows in set (0.00 sec)

mysql> create database blog_db;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| aaa                |
| blog_db            |
| games              |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
7 rows in set (0.00 sec)

mysql> drop database  aaa;
Query OK, 0 rows affected (0.01 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> drop database games;
Query OK, 0 rows affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| blog_db            |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql> select user();
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

mysql> select user,host from mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| dba01            | %         |
| test01           | 10.0.0.%  |
| test03           | 10.0.0.%  |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
7 rows in set (0.00 sec)

mysql> SELECT user, host, authentication_string, plugin FROM mysql.user WHERE user = 'dba01';
+-------+------+------------------------------------------------------------------------+-----------------------+
| user  | host | authentication_string                                                  | plugin                |
+-------+------+------------------------------------------------------------------------+-----------------------+
| dba01 | %    | $A$005$FP
'HxDnf."FkCg
8Y.yMYc5Jd4kOCwznMUAVKAITQRZhAC8nj3rgvs2mg/ | caching_sha2_password |
+-------+------+------------------------------------------------------------------------+-----------------------+
1 row in set (0.00 sec)

mysql>  GRANT SELECT, INSERT, UPDATE, DELETE ON blog_db.* TO 'dba01'@'%';
Query OK, 0 rows affected (0.00 sec)

mysql> create table b1 (id int , name varchar(30) not null);
ERROR 1046 (3D000): No database selected
mysql> use blog_db;
Database changed
mysql> create table b1 (id int , name varchar(30) not null);
Query OK, 0 rows affected (0.01 sec)

mysql>  SHOW GRANTS FOR 'dba01'@'%';
+--------------------------------------------------------------------+
| Grants for dba01@%                                                 |
+--------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `dba01`@`%`                                  |
| GRANT SELECT, INSERT, UPDATE, DELETE ON `blog_db`.* TO `dba01`@`%` |
+--------------------------------------------------------------------+
2 rows in set (0.00 sec)

mysql> ALTER TABLE b1 MODIFY id INT AUTO_INCREMENT PRIMARY KEY;
Query OK, 2 rows affected (0.02 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> CREATE TABLE b2 (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30) NOT NULL);
Query OK, 0 rows affected (0.01 sec)

mysql> 

用户权限管理

bash 复制代码
root@elk153:~ # mysql -u root -p
mysql>  SHOW GRANTS FOR dba01@'%';
+--------------------------------------------------------------------+
| Grants for dba01@%                                                 |
+--------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `dba01`@`%`                                  |
| GRANT SELECT, INSERT, UPDATE, DELETE ON `blog_db`.* TO `dba01`@`%` |
+--------------------------------------------------------------------+
2 rows in set (0.00 sec)

mysql> REVOKE SELECT, INSERT, UPDATE, DELETE ON `blog_db`.* from `dba01`@`%` ;
Query OK, 0 rows affected (0.00 sec)

mysql>  SHOW GRANTS FOR dba01@'%';
+-----------------------------------+
| Grants for dba01@%                |
+-----------------------------------+
| GRANT USAGE ON *.* TO `dba01`@`%` |
+-----------------------------------+
1 row in set (0.00 sec)

mysql> GRANT CREATE ON blog_db.d1 TO `dba01`@`%`;
Query OK, 0 rows affected (0.00 sec)

mysql>  SHOW GRANTS FOR dba01@'%';
+-----------------------------------------------+
| Grants for dba01@%                            |
+-----------------------------------------------+
| GRANT USAGE ON *.* TO `dba01`@`%`             |
| GRANT CREATE ON `blog_db`.`d1` TO `dba01`@`%` |
+-----------------------------------------------+
2 rows in set (0.00 sec)

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+------------------------------------------------------+
| Tables_in_mysql                                      |
+------------------------------------------------------+
| columns_priv                                         |
| component                                            |
| db                                                   |
| default_roles                                        |
| engine_cost                                          |
| func                                                 |
| general_log                                          |
| global_grants                                        |
| gtid_executed                                        |
| help_category                                        |
| help_keyword                                         |
| help_relation                                        |
| help_topic                                           |
| innodb_index_stats                                   |
| innodb_table_stats                                   |
| ndb_binlog_index                                     |
| password_history                                     |
| plugin                                               |
| procs_priv                                           |
| proxies_priv                                         |
| replication_asynchronous_connection_failover         |
| replication_asynchronous_connection_failover_managed |
| replication_group_configuration_version              |
| replication_group_member_actions                     |
| role_edges                                           |
| server_cost                                          |
| servers                                              |
| slave_master_info                                    |
| slave_relay_log_info                                 |
| slave_worker_info                                    |
| slow_log                                             |
| tables_priv                                          |
| time_zone                                            |
| time_zone_leap_second                                |
| time_zone_name                                       |
| time_zone_transition                                 |
| time_zone_transition_type                            |
| user                                                 |
+------------------------------------------------------+
38 rows in set (0.00 sec)

mysql> desc tables_priv;
+-------------+-----------------------------------------------------------------------------------------------------------------------------------+------+-----+-------------------+-----------------------------------------------+
| Field       | Type                                                                                                                              | Null | Key | Default           | Extra                                         |
+-------------+-----------------------------------------------------------------------------------------------------------------------------------+------+-----+-------------------+-----------------------------------------------+
| Host        | char(255)                                                                                                                         | NO   | PRI |                   |                                               |
| Db          | char(64)                                                                                                                          | NO   | PRI |                   |                                               |
| User        | char(32)                                                                                                                          | NO   | PRI |                   |                                               |
| Table_name  | char(64)                                                                                                                          | NO   | PRI |                   |                                               |
| Grantor     | varchar(288)                                                                                                                      | NO   | MUL |                   |                                               |
| Timestamp   | timestamp                                                                                                                         | NO   |     | CURRENT_TIMESTAMP | DEFAULT_GENERATED on update CURRENT_TIMESTAMP |
| Table_priv  | set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger') | NO   |     |                   |                                               |
| Column_priv | set('Select','Insert','Update','References')                                                                                      | NO   |     |                   |                                               |
+-------------+-----------------------------------------------------------------------------------------------------------------------------------+------+-----+-------------------+-----------------------------------------------+
8 rows in set (0.00 sec)

mysql> select * from tables_priv where User='dba01';
+------+---------+-------+------------+----------------+---------------------+------------+-------------+
| Host | Db      | User  | Table_name | Grantor        | Timestamp           | Table_priv | Column_priv |
+------+---------+-------+------------+----------------+---------------------+------------+-------------+
| %    | blog_db | dba01 | d1         | root@localhost | 2025-12-30 09:57:09 | Create     |             |
+------+---------+-------+------------+----------------+---------------------+------------+-------------+
1 row in set (0.00 sec)

mysql> status;
--------------
mysql  Ver 8.0.44 for Linux on x86_64 (MySQL Community Server - GPL)

Connection id:          30
Current database:       mysql
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         8.0.44 MySQL Community Server - GPL
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8mb4
Conn.  characterset:    utf8mb4
UNIX socket:            /tmp/mysql.sock
Binary data as:         Hexadecimal
Uptime:                 16 hours 25 min 57 sec

Threads: 4  Questions: 176  Slow queries: 0  Opens: 285  Flush tables: 3  Open tables: 201  Queries per second avg: 0.002
--------------

mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| mysql      |
+------------+
1 row in set (0.00 sec)

mysql> \s
--------------
mysql  Ver 8.0.44 for Linux on x86_64 (MySQL Community Server - GPL)

Threads: 4  Questions: 180  Slow queries: 0  Opens: 285  Flush tables: 3  Open tables: 201  Queries per second avg: 0.003
--------------

mysql> GRANT CREATE ON 'blog_db.d1' TO  `dba01`@`%`;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''blog_db.d1' TO  `dba01`@`%`' at line 1
mysql> GRANT CREATE ON blog_db.d1 TO `dba01`@`%`;
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT CREATE ON blog_db.* TO `dba01`@`%`;
Query OK, 0 rows affected (0.00 sec)

mysql>  SHOW GRANTS FOR dba01@'%';
+-----------------------------------------------+
| Grants for dba01@%                            |
+-----------------------------------------------+
| GRANT USAGE ON *.* TO `dba01`@`%`             |
| GRANT CREATE ON `blog_db`.* TO `dba01`@`%`    |
| GRANT CREATE ON `blog_db`.`d1` TO `dba01`@`%` |
+-----------------------------------------------+
3 rows in set (0.00 sec)

mysql> select * from db  where User='dba01';
+------+---------+-------+-------------+-------------+-------------+-------------+-------------+-----------+------------+-----------------+------------+------------+-----------------------+------------------+------------------+----------------+---------------------+--------------------+--------------+------------+--------------+
| Host | Db      | User  | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Create_tmp_table_priv | Lock_tables_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Execute_priv | Event_priv | Trigger_priv |
+------+---------+-------+-------------+-------------+-------------+-------------+-------------+-----------+------------+-----------------+------------+------------+-----------------------+------------------+------------------+----------------+---------------------+--------------------+--------------+------------+--------------+
| %    | blog_db | dba01 | N           | N           | N           | N           | Y           | N         | N          | N               | N          | N          | N                     | N                | N                | N              | N                   | N                  | N            | N          | N            |
+------+---------+-------+-------------+-------------+-------------+-------------+-------------+-----------+------------+-----------------+------------+------------+-----------------------+------------------+------------------+----------------+---------------------+--------------------+--------------+------------+--------------+
1 row in set (0.00 sec)

mysql> select * from db  where User='dba01'\G;
*************************** 1. row ***************************
                 Host: %
                   Db: blog_db
                 User: dba01
          Select_priv: N
          Insert_priv: N
          Update_priv: N
          Delete_priv: N
          Create_priv: Y
            Drop_priv: N
           Grant_priv: N
      References_priv: N
           Index_priv: N
           Alter_priv: N
Create_tmp_table_priv: N
     Lock_tables_priv: N
     Create_view_priv: N
       Show_view_priv: N
  Create_routine_priv: N
   Alter_routine_priv: N
         Execute_priv: N
           Event_priv: N
         Trigger_priv: N
1 row in set (0.00 sec)

ERROR: 
No query specified

mysql> select * from db  where User='dba01'\g;
+------+---------+-------+-------------+-------------+-------------+-------------+-------------+-----------+------------+-----------------+------------+------------+-----------------------+------------------+------------------+----------------+---------------------+--------------------+--------------+------------+--------------+
| Host | Db      | User  | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Create_tmp_table_priv | Lock_tables_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Execute_priv | Event_priv | Trigger_priv |
+------+---------+-------+-------------+-------------+-------------+-------------+-------------+-----------+------------+-----------------+------------+------------+-----------------------+------------------+------------------+----------------+---------------------+--------------------+--------------+------------+--------------+
| %    | blog_db | dba01 | N           | N           | N           | N           | Y           | N         | N          | N               | N          | N          | N                     | N                | N                | N              | N                   | N                  | N            | N          | N            |
+------+---------+-------+-------------+-------------+-------------+-------------+-------------+-----------+------------+-----------------+------------+------------+-----------------------+------------------+------------------+----------------+---------------------+--------------------+--------------+------------+--------------+
1 row in set (0.01 sec)

ERROR: 
No query specified

mysql> GRANT CREATE ON *.* TO `dba01`@`%`;
Query OK, 0 rows affected (0.01 sec)

mysql> 
mysql>  SHOW GRANTS FOR dba01@'%';
+-----------------------------------------------+
| Grants for dba01@%                            |
+-----------------------------------------------+
| GRANT CREATE ON *.* TO `dba01`@`%`            |
| GRANT CREATE ON `blog_db`.* TO `dba01`@`%`    |
| GRANT CREATE ON `blog_db`.`d1` TO `dba01`@`%` |
+-----------------------------------------------+
3 rows in set (0.00 sec)

mysql> select * from user  where User='dba01'\g;
+------+-------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------------------+--------------------------+----------------------------+---------------+-------------+-----------------+----------------------+-----------------------+------------------------------------------------------------------------+------------------+-----------------------+-------------------+----------------+------------------+----------------+------------------------+---------------------+--------------------------+-----------------+
| Host | User  | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | Event_priv | Trigger_priv | Create_tablespace_priv | ssl_type | ssl_cipher             | x509_issuer              | x509_subject               | max_questions | max_updates | max_connections | max_user_connections | plugin                | authentication_string                                                  | password_expired | password_last_changed | password_lifetime | account_locked | Create_role_priv | Drop_role_priv | Password_reuse_history | Password_reuse_time | Password_require_current | User_attributes |
+------+-------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------------------+--------------------------+----------------------------+---------------+-------------+-----------------+----------------------+-----------------------+------------------------------------------------------------------------+------------------+-----------------------+-------------------+----------------+------------------+----------------+------------------------+---------------------+--------------------------+-----------------+
| %    | dba01 | N           | N           | N           | N           | Y           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password | $A$005$FP
'HxDnf."FkCg
8Y.yMYc5Jd4kOCwznMUAVKAITQRZhAC8nj3rgvs2mg/ | N                | 2025-12-30 08:56:35   |              NULL | N              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
+------+-------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------------------+--------------------------+----------------------------+---------------+-------------+-----------------+----------------------+-----------------------+------------------------------------------------------------------------+------------------+-----------------------+-------------------+----------------+------------------+----------------+------------------------+---------------------+--------------------------+-----------------+
1 row in set (0.00 sec)


mysql> select * from user  where User='dba01'\G;

mysql> ? CREATE DATABASE;
Name: 'CREATE DATABASE'
Description:
Syntax:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
    [create_option] ...

create_option: [DEFAULT] {
    CHARACTER SET [=] charset_name
  | COLLATE [=] collation_name
  | ENCRYPTION [=] {'Y' | 'N'}
}

CREATE DATABASE creates a database with the given name. To use this
statement, you need the CREATE privilege for the database. CREATE
SCHEMA is a synonym for CREATE DATABASE.

URL: https://dev.mysql.com/doc/refman/8.0/en/create-database.html


mysql> 


mysql> select *  from mysql.user where user='test03';
+----------+--------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------------------+--------------------------+----------------------------+---------------+-------------+-----------------+----------------------+-----------------------+------------------------------------------------------------------------+------------------+-----------------------+-------------------+----------------+------------------+----------------+------------------------+---------------------+--------------------------+-----------------+
| Host     | User   | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | Event_priv | Trigger_priv | Create_tablespace_priv | ssl_type | ssl_cipher             | x509_issuer              | x509_subject               | max_questions | max_updates | max_connections | max_user_connections | plugin                | authentication_string                                                  | password_expired | password_last_changed | password_lifetime | account_locked | Create_role_priv | Drop_role_priv | Password_reuse_history | Password_reuse_time | Password_require_current | User_attributes |
+----------+--------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------------------+--------------------------+----------------------------+---------------+-------------+-----------------+----------------------+-----------------------+------------------------------------------------------------------------+------------------+-----------------------+-------------------+----------------+------------------+----------------+------------------------+---------------------+--------------------------+-----------------+
| 10.0.0.% | test03 | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password | $A$005$3-we}myT"PK+#]v&xMomLhw/.iyQckTx9ZQjPGnEIXvIYV29xsyegc.F6/A | N                | 2025-12-29 21:51:46   |              NULL | N              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
+----------+--------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------------------+--------------------------+----------------------------+---------------+-------------+-----------------+----------------------+-----------------------+------------------------------------------------------------------------+------------------+-----------------------+-------------------+----------------+------------------+----------------+------------------------+---------------------+--------------------------+-----------------+
1 row in set (0.00 sec)

mysql> select *  from mysql.user where user='test03'\G;
*************************** 1. row ***************************
                    Host: 10.0.0.%
                    User: test03
             Select_priv: N
             Insert_priv: N
             Update_priv: N
             Delete_priv: N
             Create_priv: N
               Drop_priv: N
             Reload_priv: N
           Shutdown_priv: N
            Process_priv: N
               File_priv: N
              Grant_priv: N
         References_priv: N
              Index_priv: N
              Alter_priv: N
            Show_db_priv: N
              Super_priv: N
   Create_tmp_table_priv: N
        Lock_tables_priv: N
            Execute_priv: N
         Repl_slave_priv: N
        Repl_client_priv: N
        Create_view_priv: N
          Show_view_priv: N
     Create_routine_priv: N
      Alter_routine_priv: N
        Create_user_priv: N
              Event_priv: N
            Trigger_priv: N
  Create_tablespace_priv: N
                ssl_type: 
              ssl_cipher: 0x
             x509_issuer: 0x
            x509_subject: 0x
           max_questions: 0
             max_updates: 0
         max_connections: 0
    max_user_connections: 0
                  plugin: caching_sha2_password
   authentication_string: $A$005$3-we}myT"PK+#]v&xMomLhw/.iyQckTx9ZQjPGnEIXvIYV29xsyegc.F6/A
        password_expired: N
   password_last_changed: 2025-12-29 21:51:46
       password_lifetime: NULL
          account_locked: N
        Create_role_priv: N
          Drop_role_priv: N
  Password_reuse_history: NULL
     Password_reuse_time: NULL
Password_require_current: NULL
         User_attributes: NULL
1 row in set (0.00 sec)

ERROR: 
No query specified

mysql> 


mysql> 
mysql> select *  from mysql.tables_priv  where user='test03'\G;
*************************** 1. row ***************************
       Host: 10.0.0.%
         Db: blog_db
       User: test03
 Table_name: d1
    Grantor: dba01@10.0.0.1
  Timestamp: 2025-12-30 10:59:33
 Table_priv: Create
Column_priv: 
1 row in set (0.00 sec)

ERROR: 
No query specified

mysql> select *  from mysql.tables_priv  where user='test03';
+----------+---------+--------+------------+----------------+---------------------+------------+-------------+
| Host     | Db      | User   | Table_name | Grantor        | Timestamp           | Table_priv | Column_priv |
+----------+---------+--------+------------+----------------+---------------------+------------+-------------+
| 10.0.0.% | blog_db | test03 | d1         | dba01@10.0.0.1 | 2025-12-30 10:59:33 | Create     |             |
+----------+---------+--------+------------+----------------+---------------------+------------+-------------+
1 row in set (0.01 sec)





--校验

mysql> SET GLOBAL activate_all_roles_on_login = ON;
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT CURRENT_ROLE();
+----------------+
| CURRENT_ROLE() |
+----------------+
| NONE           |
+----------------+
1 row in set (0.00 sec)


mysql> select user, host,account_locked from mysql.user;
+------------------+-----------+----------------+
| user             | host      | account_locked |
+------------------+-----------+----------------+
| blog_rw          | %         | Y              |
| dba01            | %         | N              |
| user01           | %         | N              |
| user02           | %         | N              |
| test01           | 10.0.0.%  | Y              |
| test03           | 10.0.0.%  | N              |
| mysql.infoschema | localhost | Y              |
| mysql.session    | localhost | Y              |
| mysql.sys        | localhost | Y              |
| root             | localhost | N              |
+------------------+-----------+----------------+
10 rows in set (0.00 sec)

mysql> SELECT * FROM mysql.default_roles ;
+------+--------+-------------------+-------------------+
| HOST | USER   | DEFAULT_ROLE_HOST | DEFAULT_ROLE_USER |
+------+--------+-------------------+-------------------+
| %    | user01 | %                 | blog_rw           |
+------+--------+-------------------+-------------------+
1 row in set (0.00 sec)
mysql> SELECT * FROM mysql.role_edges;
+-----------+-----------+---------+---------+-------------------+
| FROM_HOST | FROM_USER | TO_HOST | TO_USER | WITH_ADMIN_OPTION |
+-----------+-----------+---------+---------+-------------------+
| %         | blog_rw   | %       | user01  | N                 |
+-----------+-----------+---------+---------+-------------------+
1 row in set (0.00 sec)

mysql> CREATE ROLE IF NOT EXISTS test_role;
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT SELECT ON blog01.* TO test_role;  
Query OK, 0 rows affected (0.01 sec)

mysql> CREATE USER IF NOT EXISTS test_user@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.01 sec)

mysql> GRANT test_role@'%' TO test_user@'%';
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT COUNT(*) FROM mysql.user; 
+----------+
| COUNT(*) |
+----------+
|       12 |
+----------+
1 row in set (0.00 sec)

mysql> SELECT user ,host FROM mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| blog_rw          | %         |
| dba01            | %         |
| test_role        | %         |
| test_user        | %         |
| user01           | %         |
| user02           | %         |
| test01           | 10.0.0.%  |
| test03           | 10.0.0.%  |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
12 rows in set (0.00 sec)
mysql> SELECT * FROM mysql.role_edges;
+-----------+-----------+---------+-----------+-------------------+
| FROM_HOST | FROM_USER | TO_HOST | TO_USER   | WITH_ADMIN_OPTION |
+-----------+-----------+---------+-----------+-------------------+
| %         | blog_rw   | %       | user01    | N                 |
| %         | test_role | %       | test_user | N                 |
+-----------+-----------+---------+-----------+-------------------+
2 rows in set (0.00 sec)

mysql> SELECT * FROM mysql.default_roles ;
+------+--------+-------------------+-------------------+
| HOST | USER   | DEFAULT_ROLE_HOST | DEFAULT_ROLE_USER |
+------+--------+-------------------+-------------------+
| %    | user01 | %                 | blog_rw           |
+------+--------+-------------------+-------------------+
1 row in set (0.00 sec)


---


mysql> SHOW COLUMNS FROM mysql.user LIKE '%role%';
+------------------+---------------+------+-----+---------+-------+
| Field            | Type          | Null | Key | Default | Extra |
+------------------+---------------+------+-----+---------+-------+
| Create_role_priv | enum('N','Y') | NO   |     | N       |       |
| Drop_role_priv   | enum('N','Y') | NO   |     | N       |       |
+------------------+---------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql> DESC mysql.user;
+--------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Field                    | Type                              | Null | Key | Default               | Extra |
+--------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Host                     | char(255)                         | NO   | PRI |                       |       |
| User                     | char(32)                          | NO   | PRI |                       |       |
| Select_priv              | enum('N','Y')                     | NO   |     | N                     |       |
| Insert_priv              | enum('N','Y')                     | NO   |     | N                     |       |
| Update_priv              | enum('N','Y')                     | NO   |     | N                     |       |
| Delete_priv              | enum('N','Y')                     | NO   |     | N                     |       |
| Create_priv              | enum('N','Y')                     | NO   |     | N                     |       |
| Drop_priv                | enum('N','Y')                     | NO   |     | N                     |       |
| Reload_priv              | enum('N','Y')                     | NO   |     | N                     |       |
| Shutdown_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Process_priv             | enum('N','Y')                     | NO   |     | N                     |       |
| File_priv                | enum('N','Y')                     | NO   |     | N                     |       |
| Grant_priv               | enum('N','Y')                     | NO   |     | N                     |       |
| References_priv          | enum('N','Y')                     | NO   |     | N                     |       |
| Index_priv               | enum('N','Y')                     | NO   |     | N                     |       |
| Alter_priv               | enum('N','Y')                     | NO   |     | N                     |       |
| Show_db_priv             | enum('N','Y')                     | NO   |     | N                     |       |
| Super_priv               | enum('N','Y')                     | NO   |     | N                     |       |
| Create_tmp_table_priv    | enum('N','Y')                     | NO   |     | N                     |       |
| Lock_tables_priv         | enum('N','Y')                     | NO   |     | N                     |       |
| Execute_priv             | enum('N','Y')                     | NO   |     | N                     |       |
| Repl_slave_priv          | enum('N','Y')                     | NO   |     | N                     |       |
| Repl_client_priv         | enum('N','Y')                     | NO   |     | N                     |       |
| Create_view_priv         | enum('N','Y')                     | NO   |     | N                     |       |
| Show_view_priv           | enum('N','Y')                     | NO   |     | N                     |       |
| Create_routine_priv      | enum('N','Y')                     | NO   |     | N                     |       |
| Alter_routine_priv       | enum('N','Y')                     | NO   |     | N                     |       |
| Create_user_priv         | enum('N','Y')                     | NO   |     | N                     |       |
| Event_priv               | enum('N','Y')                     | NO   |     | N                     |       |
| Trigger_priv             | enum('N','Y')                     | NO   |     | N                     |       |
| Create_tablespace_priv   | enum('N','Y')                     | NO   |     | N                     |       |
| ssl_type                 | enum('','ANY','X509','SPECIFIED') | NO   |     |                       |       |
| ssl_cipher               | blob                              | NO   |     | NULL                  |       |
| x509_issuer              | blob                              | NO   |     | NULL                  |       |
| x509_subject             | blob                              | NO   |     | NULL                  |       |
| max_questions            | int unsigned                      | NO   |     | 0                     |       |
| max_updates              | int unsigned                      | NO   |     | 0                     |       |
| max_connections          | int unsigned                      | NO   |     | 0                     |       |
| max_user_connections     | int unsigned                      | NO   |     | 0                     |       |
| plugin                   | char(64)                          | NO   |     | caching_sha2_password |       |
| authentication_string    | text                              | YES  |     | NULL                  |       |
| password_expired         | enum('N','Y')                     | NO   |     | N                     |       |
| password_last_changed    | timestamp                         | YES  |     | NULL                  |       |
| password_lifetime        | smallint unsigned                 | YES  |     | NULL                  |       |
| account_locked           | enum('N','Y')                     | NO   |     | N                     |       |
| Create_role_priv         | enum('N','Y')                     | NO   |     | N                     |       |
| Drop_role_priv           | enum('N','Y')                     | NO   |     | N                     |       |
| Password_reuse_history   | smallint unsigned                 | YES  |     | NULL                  |       |
| Password_reuse_time      | smallint unsigned                 | YES  |     | NULL                  |       |
| Password_require_current | enum('N','Y')                     | YES  |     | NULL                  |       |
| User_attributes          | json                              | YES  |     | NULL                  |       |
+--------------------------+-----------------------------------+------+-----+-----------------------+-------+
51 rows in set (0.01 sec)

mysql> -- 或精确查找相关列
mysql> SHOW COLUMNS FROM mysql.user LIKE '%role%';
+------------------+---------------+------+-----+---------+-------+
| Field            | Type          | Null | Key | Default | Extra |
+------------------+---------------+------+-----+---------+-------+
| Create_role_priv | enum('N','Y') | NO   |     | N       |       |
| Drop_role_priv   | enum('N','Y') | NO   |     | N       |       |
+------------------+---------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

锁/解锁用户

bash 复制代码
mysql> SELECT user, host, account_locked FROM mysql.user WHERE user = 'user01';
+--------+------+----------------+
| user   | host | account_locked |
+--------+------+----------------+
| user01 | %    | N              |
+--------+------+----------------+
1 row in set (0.00 sec)

mysql> alter user user01@'%' account lock;
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT user, host, account_locked FROM mysql.user WHERE user = 'user01';
+--------+------+----------------+
| user   | host | account_locked |
+--------+------+----------------+
| user01 | %    | Y              |
+--------+------+----------------+
1 row in set (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT user, host, account_locked FROM mysql.user ;
+------------------+-----------+----------------+
| user             | host      | account_locked |
+------------------+-----------+----------------+
| blog_rw          | %         | Y              |
| dba01            | %         | N              |
| user01           | %         | Y              |
| user02           | %         | N              |
| test01           | 10.0.0.%  | Y              |
| test03           | 10.0.0.%  | N              |

10 rows in set (0.00 sec)

mysql> alter user user01@'%' account unlock;
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT user, host, account_locked FROM mysql.user ;
+------------------+-----------+----------------+
| user             | host      | account_locked |
+------------------+-----------+----------------+
| blog_rw          | %         | Y              |
| dba01            | %         | N              |
| user01           | %         | N              |
| user02           | %         | N              |
| test01           | 10.0.0.%  | Y              |
| test03           | 10.0.0.%  | N              |

10 rows in set (0.00 sec)

角色权限管理

bash 复制代码
mysql> CREATE ROLE blog01_rw, blog01_r;
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE DATABASE blog01;
Query OK, 1 row affected (0.00 sec)

mysql> USE blog01;
Database changed
mysql> CREATE TABLE b1 (id INT);
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO b1 VALUES (1), (2), (3);
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM blog01.b1;
+------+
| id   |
+------+
|    1 |
|    2 |
|    3 |
+------+
3 rows in set (0.00 sec)
--未激活角色的用户无法使用该角色的权限进行操作
mysql> SELECT * FROM mysql.role_edges;
Empty set (0.00 sec)

mysql> SELECT * FROM mysql.user WHERE account_locked = 'Y';
+-----------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------------------+--------------------------+----------------------------+---------------+-------------+-----------------+----------------------+-----------------------+------------------------------------------------------------------------+------------------+-----------------------+-------------------+----------------+------------------+----------------+------------------------+---------------------+--------------------------+-----------------+
| Host      | User             | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | Event_priv | Trigger_priv | Create_tablespace_priv | ssl_type | ssl_cipher             | x509_issuer              | x509_subject               | max_questions | max_updates | max_connections | max_user_connections | plugin                | authentication_string                                                  | password_expired | password_last_changed | password_lifetime | account_locked | Create_role_priv | Drop_role_priv | Password_reuse_history | Password_reuse_time | Password_require_current | User_attributes |
+-----------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------------------+--------------------------+----------------------------+---------------+-------------+-----------------+----------------------+-----------------------+------------------------------------------------------------------------+------------------+-----------------------+-------------------+----------------+------------------+----------------+------------------------+---------------------+--------------------------+-----------------+
| %         | blog01_r         | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password |                                                                        | Y                | 2025-12-30 11:07:05   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| %         | blog01_rw        | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password |                                                                        | Y                | 2025-12-30 11:07:05   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| 10.0.0.%  | test01           | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password | $A$005$j%9
                                                                                                                    @}/ 8j=Jd}",Dx9QwczuaoTc5UAeJ6W2B.x4rnHRx4O8rNLboR8Tx07 | N                | 2025-12-29 21:35:04   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| localhost | mysql.infoschema | Y           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | N                | 2025-12-28 11:25:56   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| localhost | mysql.session    | N           | N           | N           | N           | N           | N         | N           | Y             | N            | N         | N          | N               | N          | N          | N            | Y          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | N                | 2025-12-28 11:25:56   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| localhost | mysql.sys        | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | N                | 2025-12-28 11:25:56   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
+-----------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------------------+--------------------------+----------------------------+---------------+-------------+-----------------+----------------------+-----------------------+------------------------------------------------------------------------+------------------+-----------------------+-------------------+----------------+------------------+----------------+------------------------+---------------------+--------------------------+-----------------+
6 rows in set (0.00 sec)

mysql> DROP USER blog01_rw, blog01_r;
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT * FROM mysql.general_log ;
Empty set (0.00 sec)

mysql> desc mysql.general_log;
+--------------+-----------------+------+-----+----------------------+--------------------------------------------------+
| Field        | Type            | Null | Key | Default              | Extra                                            |
+--------------+-----------------+------+-----+----------------------+--------------------------------------------------+
| event_time   | timestamp(6)    | NO   |     | CURRENT_TIMESTAMP(6) | DEFAULT_GENERATED on update CURRENT_TIMESTAMP(6) |
| user_host    | mediumtext      | NO   |     | NULL                 |                                                  |
| thread_id    | bigint unsigned | NO   |     | NULL                 |                                                  |
| server_id    | int unsigned    | NO   |     | NULL                 |                                                  |
| command_type | varchar(64)     | NO   |     | NULL                 |                                                  |
| argument     | mediumblob      | NO   |     | NULL                 |                                                  |
+--------------+-----------------+------+-----+----------------------+--------------------------------------------------+
6 rows in set (0.01 sec)

mysql> SET GLOBAL general_log = 'ON';
Query OK, 0 rows affected (0.00 sec)

mysql> SET GLOBAL log_output = 'TABLE';  -- 记录到 mysql.general_log 表
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT * FROM mysql.general_log ;
+----------------------------+---------------------------+-----------+-----------+--------------+------------------------------------------------------------------+
| event_time                 | user_host                 | thread_id | server_id | command_type | argument                                                         |
+----------------------------+---------------------------+-----------+-----------+--------------+------------------------------------------------------------------+
| 2025-12-30 11:31:26.352334 | root[root] @ localhost [] |        30 |         1 | Query        | 0x53454C454354202A2046524F4D206D7973716C2E67656E6572616C5F6C6F67 |
+----------------------------+---------------------------+-----------+-----------+--------------+------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> create role blog_rw, blog_r;
Query OK, 0 rows affected (0.01 sec)

mysql> SELECT * FROM mysql.general_log ;
+----------------------------+---------------------------+-----------+-----------+--------------+------------------------------------------------------------------+
| event_time                 | user_host                 | thread_id | server_id | command_type | argument                                                         |
+----------------------------+---------------------------+-----------+-----------+--------------+------------------------------------------------------------------+
| 2025-12-30 11:31:26.352334 | root[root] @ localhost [] |        30 |         1 | Query        | 0x53454C454354202A2046524F4D206D7973716C2E67656E6572616C5F6C6F67 |
| 2025-12-30 11:33:21.491079 | root[root] @ localhost [] |        30 |         1 | Query        | 0x63726561746520726F6C6520626C6F675F72772C20626C6F675F72         |
| 2025-12-30 11:33:23.500364 | root[root] @ localhost [] |        30 |         1 | Query        | 0x53454C454354202A2046524F4D206D7973716C2E67656E6572616C5F6C6F67 |
+----------------------------+---------------------------+-----------+-----------+--------------+------------------------------------------------------------------+
3 rows in set (0.00 sec)

mysql> SELECT * FROM mysql.user WHERE account_locked = 'Y';
+-----------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------------------+--------------------------+----------------------------+---------------+-------------+-----------------+----------------------+-----------------------+------------------------------------------------------------------------+------------------+-----------------------+-------------------+----------------+------------------+----------------+------------------------+---------------------+--------------------------+-----------------+
| Host      | User             | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | Event_priv | Trigger_priv | Create_tablespace_priv | ssl_type | ssl_cipher             | x509_issuer              | x509_subject               | max_questions | max_updates | max_connections | max_user_connections | plugin                | authentication_string                                                  | password_expired | password_last_changed | password_lifetime | account_locked | Create_role_priv | Drop_role_priv | Password_reuse_history | Password_reuse_time | Password_require_current | User_attributes |
+-----------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------------------+--------------------------+----------------------------+---------------+-------------+-----------------+----------------------+-----------------------+------------------------------------------------------------------------+------------------+-----------------------+-------------------+----------------+------------------+----------------+------------------------+---------------------+--------------------------+-----------------+
| %         | blog_r           | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password |                                                                        | Y                | 2025-12-30 11:33:21   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| %         | blog_rw          | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password |                                                                        | Y                | 2025-12-30 11:33:21   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| 10.0.0.%  | test01           | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password | $A$005$j%9
                                                                                                                    @}/ 8j=Jd}",Dx9QwczuaoTc5UAeJ6W2B.x4rnHRx4O8rNLboR8Tx07 | N                | 2025-12-29 21:35:04   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| localhost | mysql.infoschema | Y           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | N                | 2025-12-28 11:25:56   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| localhost | mysql.session    | N           | N           | N           | N           | N           | N         | N           | Y             | N            | N         | N          | N               | N          | N          | N            | Y          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | N                | 2025-12-28 11:25:56   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| localhost | mysql.sys        | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | N                | 2025-12-28 11:25:56   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
+-----------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------------------+--------------------------+----------------------------+---------------+-------------+-----------------+----------------------+-----------------------+------------------------------------------------------------------------+------------------+-----------------------+-------------------+----------------+------------------+----------------+------------------------+---------------------+--------------------------+-----------------+
6 rows in set (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| blog01             |
| blog_db            |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

mysql> GRANT SELECT ON blog01.* TO blog_r;
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT SELECT,update,insert,delete  ON blog01.* TO blog_rw;
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT * FROM mysql.role_edges;
Empty set (0.00 sec)

mysql> SELECT * FROM mysql.user WHERE account_locked = 'Y';
+-----------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------------------+--------------------------+----------------------------+---------------+-------------+-----------------+----------------------+-----------------------+------------------------------------------------------------------------+------------------+-----------------------+-------------------+----------------+------------------+----------------+------------------------+---------------------+--------------------------+-----------------+
| Host      | User             | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | Event_priv | Trigger_priv | Create_tablespace_priv | ssl_type | ssl_cipher             | x509_issuer              | x509_subject               | max_questions | max_updates | max_connections | max_user_connections | plugin                | authentication_string                                                  | password_expired | password_last_changed | password_lifetime | account_locked | Create_role_priv | Drop_role_priv | Password_reuse_history | Password_reuse_time | Password_require_current | User_attributes |
+-----------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------------------+--------------------------+----------------------------+---------------+-------------+-----------------+----------------------+-----------------------+------------------------------------------------------------------------+------------------+-----------------------+-------------------+----------------+------------------+----------------+------------------------+---------------------+--------------------------+-----------------+
| %         | blog_r           | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password |                                                                        | Y                | 2025-12-30 11:33:21   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| %         | blog_rw          | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password |                                                                        | Y                | 2025-12-30 11:33:21   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| 10.0.0.%  | test01           | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password | $A$005$j%9
                                                                                                                    @}/ 8j=Jd}",Dx9QwczuaoTc5UAeJ6W2B.x4rnHRx4O8rNLboR8Tx07 | N                | 2025-12-29 21:35:04   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| localhost | mysql.infoschema | Y           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | N                | 2025-12-28 11:25:56   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| localhost | mysql.session    | N           | N           | N           | N           | N           | N         | N           | Y             | N            | N         | N          | N               | N          | N          | N            | Y          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | N                | 2025-12-28 11:25:56   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| localhost | mysql.sys        | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | N                | 2025-12-28 11:25:56   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
+-----------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------------------+--------------------------+----------------------------+---------------+-------------+-----------------+----------------------+-----------------------+------------------------------------------------------------------------+------------------+-----------------------+-------------------+----------------+------------------+----------------+------------------------+---------------------+--------------------------+-----------------+
6 rows in set (0.00 sec)

mysql> SELECT * FROM mysql.user WHERE account_locked = 'Y'\g;
+-----------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------------------+--------------------------+----------------------------+---------------+-------------+-----------------+----------------------+-----------------------+------------------------------------------------------------------------+------------------+-----------------------+-------------------+----------------+------------------+----------------+------------------------+---------------------+--------------------------+-----------------+
| Host      | User             | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | Event_priv | Trigger_priv | Create_tablespace_priv | ssl_type | ssl_cipher             | x509_issuer              | x509_subject               | max_questions | max_updates | max_connections | max_user_connections | plugin                | authentication_string                                                  | password_expired | password_last_changed | password_lifetime | account_locked | Create_role_priv | Drop_role_priv | Password_reuse_history | Password_reuse_time | Password_require_current | User_attributes |
+-----------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------------------+--------------------------+----------------------------+---------------+-------------+-----------------+----------------------+-----------------------+------------------------------------------------------------------------+------------------+-----------------------+-------------------+----------------+------------------+----------------+------------------------+---------------------+--------------------------+-----------------+
| %         | blog_r           | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password |                                                                        | Y                | 2025-12-30 11:33:21   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| %         | blog_rw          | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password |                                                                        | Y                | 2025-12-30 11:33:21   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| 10.0.0.%  | test01           | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password | $A$005$j%9
                                                                                                                    @}/ 8j=Jd}",Dx9QwczuaoTc5UAeJ6W2B.x4rnHRx4O8rNLboR8Tx07 | N                | 2025-12-29 21:35:04   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| localhost | mysql.infoschema | Y           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | N                | 2025-12-28 11:25:56   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| localhost | mysql.session    | N           | N           | N           | N           | N           | N         | N           | Y             | N            | N         | N          | N               | N          | N          | N            | Y          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | N                | 2025-12-28 11:25:56   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| localhost | mysql.sys        | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | N                | 2025-12-28 11:25:56   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
+-----------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------------------+--------------------------+----------------------------+---------------+-------------+-----------------+----------------------+-----------------------+------------------------------------------------------------------------+------------------+-----------------------+-------------------+----------------+------------------+----------------+------------------------+---------------------+--------------------------+-----------------+
6 rows in set (0.00 sec)

ERROR: 
No query specified

mysql> SELECT * FROM mysql.user WHERE account_locked = 'Y'\G;
*************************** 1. row ***************************
                    Host: %
                    User: blog_r

mysql> CREATE USER user01@'%' IDENTIFIED BY '123';
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE USER user02@'%' IDENTIFIED BY '123';
Query OK, 0 rows affected (0.01 sec)

mysql> GRANT blog_rw TO user01@'%';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT blog_r TO user02@'%';
Query OK, 0 rows affected (0.01 sec)

mysql> SELECT * FROM mysql.role_edges;
+-----------+-----------+---------+---------+-------------------+
| FROM_HOST | FROM_USER | TO_HOST | TO_USER | WITH_ADMIN_OPTION |
+-----------+-----------+---------+---------+-------------------+
| %         | blog_r    | %       | user02  | N                 |
| %         | blog_rw   | %       | user01  | N                 |
+-----------+-----------+---------+---------+-------------------+
2 rows in set (0.00 sec)

mysql> show grants for 'user01'@'%';
+-------------------------------------+
| Grants for user01@%                 |
+-------------------------------------+
| GRANT USAGE ON *.* TO `user01`@`%`  |
| GRANT `blog_rw`@`%` TO `user01`@`%` |
+-------------------------------------+
2 rows in set (0.00 sec)

mysql> select current_role();
+----------------+
| current_role() |
+----------------+
| NONE           |
+----------------+
1 row in set (0.00 sec)

mysql> SET DEFAULT ROLE ALL TO user01@'%';
Query OK, 0 rows affected (0.00 sec)

mysql> select current_role();
+----------------+
| current_role() |
+----------------+
| NONE           |
+----------------+
1 row in set (0.00 sec)





mysql> select current_role();
+----------------+
| current_role() |
+----------------+
| NONE           |
+----------------+
1 row in set (0.00 sec)

mysql> exit;
Bye

C:\Users\games>mysql -u user01 -h 10.0.0.153 -p123
mysql: [Warning] Using a password on the command line interface can be insecure.

mysql> select current_role();
+----------------+
| current_role() |
+----------------+
| `blog_rw`@`%`  |
+----------------+
1 row in set (0.00 sec)


mysql> SELECT * FROM mysql.user;
+-----------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------------------+--------------------------+----------------------------+---------------+-------------+-----------------+----------------------+-----------------------+------------------------------------------------------------------------+------------------+-----------------------+-------------------+----------------+------------------+----------------+------------------------+---------------------+--------------------------+-----------------+
| Host      | User             | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | Event_priv | Trigger_priv | Create_tablespace_priv | ssl_type | ssl_cipher             | x509_issuer              | x509_subject               | max_questions | max_updates | max_connections | max_user_connections | plugin                | authentication_string                                                  | password_expired | password_last_changed | password_lifetime | account_locked | Create_role_priv | Drop_role_priv | Password_reuse_history | Password_reuse_time | Password_require_current | User_attributes |
+-----------+------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------------------+--------------------------+----------------------------+---------------+-------------+-----------------+----------------------+-----------------------+------------------------------------------------------------------------+------------------+-----------------------+-------------------+----------------+------------------+----------------+------------------------+---------------------+--------------------------+-----------------+
| %         | blog_r           | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password |                                                                        | Y                | 2025-12-30 11:33:21   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| %         | blog_rw          | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password |                                                                        | Y                | 2025-12-30 11:33:21   |              NULL | Y              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| %         | dba01            | N           | N           | N           | N           | Y           | N         | N           | N             | N            | N         | Y          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password | $A$005$FP
| %         | user02           | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password | $A$005$|cx8|x?R{89)/wTTCXJsXibh848/2MSSKPSTAownZLsvmZoJk0eM1fpKx1 | N                | 2025-12-30 11:37:29   |              NULL | N              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| 10.0.0.%  | test03           | N           | N           | N           | N           | N           | N         | N           | N             | N            | N         | N          | N               | N          | N          | N            | N          | N                     | N                | N            | N               | N                | N                | N              | N                   | N                  | N                | N          | N            | N                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password | $A$005$3-we}myT"PK+#]v&xMomLhw/.iyQckTx9ZQjPGnEIXvIYV29xsyegc.F6/A | N                | 2025-12-29 21:51:46   |              NULL | N              | N                | N              |                   NULL |                NULL | NULL                     | NULL            |
| localhost | root             | Y           | Y           | Y           | Y           | Y           | Y         | Y           | Y             | Y            | Y         | Y          | Y               | Y          | Y          | Y            | Y          | Y                     | Y                | Y            | Y               | Y                | Y                | Y              | Y                   | Y                  | Y                | Y          | Y            | Y                      |          | 0x                     | 0x                       | 0x                         |             0 |           0 |               0 |                    0 | caching_sha2_password | $A$005$*U&C]WLs|bTl^m
11 rows in set (0.00 sec)



C:\Users\games>mysql -u user01 -h 10.0.0.153 -p123

mysql> select current_role();
+----------------+
| current_role() |
+----------------+
| `blog_rw`@`%`  |
+----------------+
1 row in set (0.00 sec)

mysql> SELECT CURRENT_ROLE();
+----------------+
| CURRENT_ROLE() |
+----------------+
| `blog_rw`@`%`  |
+----------------+
1 row in set (0.00 sec)

mysql> show grants for `blog_rw`@`%`;
ERROR 1142 (42000): SELECT command denied to user 'user01'@'10.0.0.1' for table 'user'
mysql> exit;
Bye

C:\Users\games>mysql -u user02 -h 10.0.0.153 -p123
mysql: [Warning] Using a password on the command line interface can be insecure.

mysql> SELECT CURRENT_ROLE();
+----------------+
| CURRENT_ROLE() |
+----------------+
| NONE           |
+----------------+
1 row in set (0.00 sec)

mysql> ALTER USER 'user02'@'%' SET DEFAULT ROLE 'blog_r'@'%';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET DEFAULT ROLE 'blog_r'@'%'' at line 1
mysql> SET ROLE 'blog_r'@'%';
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT CURRENT_ROLE();
+----------------+
| CURRENT_ROLE() |
+----------------+
| `blog_r`@`%`   |
+----------------+
1 row in set (0.00 sec)


mysql> SHOW VARIABLES LIKE 'version%';
+-------------------------+------------------------------+
| Variable_name           | Value                        |
+-------------------------+------------------------------+
| version                 | 8.0.44                       |
| version_comment         | MySQL Community Server - GPL |
| version_compile_machine | x86_64                       |
| version_compile_os      | Linux                        |
| version_compile_zlib    | 1.3.1                        |
+-------------------------+------------------------------+
5 rows in set (0.00 sec)

mysql> drop user `blog_r`@`%`;
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host from mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| blog_rw          | %         |
| dba01            | %         |
| user01           | %         |
| user02           | %         |
| test01           | 10.0.0.%  |
| test03           | 10.0.0.%  |

10 rows in set (0.00 sec)

mysql> SELECT * FROM mysql.role_edges;
+-----------+-----------+---------+---------+-------------------+
| FROM_HOST | FROM_USER | TO_HOST | TO_USER | WITH_ADMIN_OPTION |
+-----------+-----------+---------+---------+-------------------+
| %         | blog_rw   | %       | user01  | N                 |
+-----------+-----------+---------+---------+-------------------+
1 row in set (0.00 sec)

mysql> show grants for 'user02'@'%';
+------------------------------------+
| Grants for user02@%                |
+------------------------------------+
| GRANT USAGE ON *.* TO `user02`@`%` |
+------------------------------------+
1 row in set (0.00 sec)

mysql> select user, host,account_locked from mysql.user;
+------------------+-----------+----------------+
| user             | host      | account_locked |
+------------------+-----------+----------------+
| blog_rw          | %         | Y              |
| dba01            | %         | N              |
| user01           | %         | N              |
| user02           | %         | N              |
| test01           | 10.0.0.%  | Y              |
| test03           | 10.0.0.%  | N              |


mysql> SELECT * FROM mysql.default_roles ;
+------+--------+-------------------+-------------------+
| HOST | USER   | DEFAULT_ROLE_HOST | DEFAULT_ROLE_USER |
+------+--------+-------------------+-------------------+
| %    | user01 | %                 | blog_rw           |
+------+--------+-------------------+-------------------+
1 row in set (0.00 sec)

mysql> SELECT * FROM mysql.role_edges;
+-----------+-----------+---------+---------+-------------------+
| FROM_HOST | FROM_USER | TO_HOST | TO_USER | WITH_ADMIN_OPTION |
+-----------+-----------+---------+---------+-------------------+
| %         | blog_rw   | %       | user01  | N                 |
+-----------+-----------+---------+---------+-------------------+
1 row in set (0.00 sec)
相关推荐
四谎真好看11 小时前
MySQL 学习笔记(运维篇2)
数据库·笔记·学习·mysql·学习笔记
l1t12 小时前
将利用30行X算法求解数独的python程序转成DuckDB自定义函数并比较性能
数据库·python·算法·duckdb
墨白曦煜12 小时前
硬核图解:MySQL 是如何利用 MVCC + 锁实现“可重复读”的?
数据库·mysql
DarkAthena13 小时前
【DuckDB】探索函数调用新范式:点操作符链式调用
数据库·sql·duckdb
自己的九又四分之三站台13 小时前
PG GraphQL详细介绍与基本使用
数据库·sql·graphql
大模型RAG和Agent技术实践13 小时前
SQL Agent从“黑盒“到“全透明“:基于LangGraph+Phoenix的可观测性实战指南
数据库·人工智能·sql·agent·langgraph
rchmin13 小时前
Redis BitMap介绍及使用场景示例
数据库·redis·缓存
Dxy123931021613 小时前
MySQL 日志全解析
数据库·mysql
思成Codes13 小时前
MySQL——最左前缀法则
数据库·mysql