MySQL创建数据库、创建用户、授权完整命令

前言

新装MySQL,要创建数据库、创建用户、授权,一套操作下来经常懵。本文整理完整命令,照着抄就行。

第一步:登录MySQL

mysql -u root -p

输入root密码登录。

第二步:创建数据库

CREATE DATABASE mydb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

说明:

  • mydb 是数据库名,自己改
  • utf8mb4 支持emoji,推荐用
  • utf8mb4_general_ci 是排序规则

第三步:创建用户

MySQL 5.7及以前

CREATE USER 'myuser'@'localhost' IDENTIFIED BY '你的密码';

MySQL 8.0

CREATE USER 'myuser'@'localhost' IDENTIFIED BY '你的密码';

允许远程登录

CREATE USER 'myuser'@'%' IDENTIFIED BY '你的密码';

% 表示所有IP都能连,生产环境建议指定具体IP。

第四步:授权

授权所有权限(常用)

GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';

说明:

  • mydb.* 表示mydb库下所有表
  • 要授权所有库就写 *.*

只授权查询权限

GRANT SELECT ON mydb.* TO 'myuser'@'localhost';

授权指定权限

GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'myuser'@'localhost';

授权远程用户

GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'%';

第五步:刷新权限

FLUSH PRIVILEGES;

这步必须做! 不然授权不生效。

查看和撤销权限

查看用户权限

SHOW GRANTS FOR 'myuser'@'localhost';

撤销权限

REVOKE ALL PRIVILEGES ON mydb.* FROM 'myuser'@'localhost';

删除用户

DROP USER 'myuser'@'localhost';

常见坑

坑1:创建了用户但没授权

用户登录上了,但什么都做不了。

原因: 只创建了用户,没授权。

解决: 创建用户后一定要 GRANT。

坑2:改了密码不生效

改完密码还是旧密码能登。

原因: 没 FLUSH PRIVILEGES。

解决: 执行 FLUSH PRIVILEGES;

坑3:远程连接不上

本地能登,远程连不上。

原因: 用户只允许localhost登录。

解决: 创建 '用户'@'%' 的远程用户,或者授权。

坑4:密码太简单报错

创建用户时报密码不符合策略。

原因: MySQL 5.6以后有密码强度校验。

解决: 用复杂点的密码,或者关掉密码校验。

坑5:MySQL 8.0密码加密方式变了

老客户端连不上MySQL 8.0。

原因: MySQL 8.0默认用caching_sha2_password,老客户端不支持。

解决: 创建用户时指定老的加密方式:

CREATE USER 'myuser'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';

完整一键脚本

-- 登录MySQL后执行
CREATE DATABASE mydb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY '你的密码';
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;

总结

三步走:

  1. 建库 CREATE DATABASE
  2. 建用户 CREATE USER
  3. 授权 GRANT + FLUSH PRIVILEGES

记住: 授权完一定要刷新!

遇到问题加QQ23979811 协助处理


emer 发布于  2026-10-8 07:38