MySQL常用SQL总结

用户及权限管理

SELECT CURRENT_USER();

创建用户

GRANT ALL PRIVILEGES ON . TO '用户名'@'%' IDENTIFIED BY '密码';

ERROR 1410 (42000): You are not allowed to create a user with GRANT

mysql8的分配权限不能带密码隐式创建账号了,要先创建账号再设置权限
应该是要先创建用户,然后再添加角色权限,这样分开两步就可以了。

create user '用户名'@'%' identified by '123456';
grant all on *.* to '用户名'@'%';

添加权限

https://dev.mysql.com/blog-archive/how-to-grant-privileges-to-users-in-mysql-80/

查询用户

SELECT * FROM mysql.user WHERE user = '用户名';

删除用户

-- 基础语法:删除指定用户(用户名+主机)
DROP USER [IF EXISTS] '用户名'@'访问主机';

-- 可选:刷新权限(MySQL 8.0+ 通常自动生效,低版本建议执行)
FLUSH PRIVILEGES;

客户端连接

查询会话连接

SHOW PROCESSLIST;: 查看当前连接的前100条记录.

SHOW FULL PROCESSLIST;: 查看所有连接的详细信息,包括正在执行的 SQL.
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;: 查询系统表,获取所有连接信息,与 SHOW PROCESSLIST 类似.

查看特定信息
查看特定用户连接: SHOW PROCESSLIST WHERE User = 'your_user';.
统计连接数: SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST;.
查看当前会话用户信息: SELECT CURRENT_USER(); 或 SELECT USER();.
查看连接方式: STATUS; (显示连接是本地 socket 还是 TCP/IP 方式).

performance_schema.threads 提供了更底层的线程和会话信息: SELECT * FROM performance_schema.threads;

管理和配置
查看最大连接数: SHOW VARIABLES LIKE 'max_connections';.
修改最大连接数: 修改 my.ini (Windows) 或 my.cnf (Linux) 中的 max_connections 值,然后重启 MySQL 服务.

posted @ 2025-12-13 19:44  vonlinee  阅读(8)  评论(0)    收藏  举报