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 服务.

浙公网安备 33010602011771号