MySQL创建数据库、创建用户、授权完整命令
时间:2026-10-8 07:38 作者:emer 分类: 无
前言
新装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;
总结
三步走:
- 建库
CREATE DATABASE - 建用户
CREATE USER - 授权
GRANT+FLUSH PRIVILEGES
记住: 授权完一定要刷新!
遇到问题加QQ23979811 协助处理