以下操作基于Mysql 8.0+
创建数据库
普通用法:
- 数据库名称:db_name
- 字符集编码:utf8mb4
- 校对编码:utf8mb4_0900_ai_ci
1 | create database `db_name` character set utf8mb4 collate utf8mb4_0900_ai_ci; |
推荐用法:
- 如果存在则不创建,不存在则创建
1 | create database if not exists `db_name` character set utf8mb4 collate utf8mb4_0900_ai_ci; |
初始化创建法:
请确保删除数据库不会对原有数据库结构成不可逆影响下使用该方法,该方法先判断
db_name
是否存在,存在则删除db_name
数据库,再创建db_name
数据库,一般用于测试环境初始化数据库,生产环境强烈建议不要使用
1 | drop database if exists `db_name`; |
删除数据库
- 判断数据库是否存在,存在则删除
1 | drop database if exists `db_name`; |
创建用户
- username:将要创建的用户名
- Host:指定该用户在哪个主机上可以登陆,制定IP如
127.0.0.1
任意主机%
- password:将要创建用户密码
1 | create user 'username'@'ip' identified with mysql_native_password by 'password'; |
举例子:
- 用户名:irez
- host:% 任意地址
- 密 码:https://irez.cn
- 密码认证插件:mysql_native_password
在MySQL 8.04前,MySQL的密码认证插件是“mysql_native_password”,而现在使用的是“caching_sha2_password”。部分客户端无法连接,这也可以解决Navicat1251错误
1 | create user 'irez'@'%' identified with mysql_native_password by 'https://irez.cn'; |
修改用户密码
use mysql
切换mysql数据库,应为mysql用户名是存在mysql数据库中的;
alter user
修改修改用户名与密码;
flush privileges
刷新数据库权限
1 | use mysql; |
用户授权
将数据库
db_name
所有权限授权给username
用户
1 | grant all privileges on `db_name`.* to 'username'@'ip' with grant option; |
举例子:
1 | grant all privileges on `db_name`.* to 'irez'@'%' with grant option; |
撤销授权
撤销username
用户所有权限
1 | revoke all privileges on *.* from 'username'@'ip'; |
撤销username
用户对db_name
数据库的权限线
1 | revoke all privileges on `db_name`.* from 'username'@'ip'; |
撤销username
用户对db_name
数据库中table_name
表的权限
1 | revoke all privileges on `db_name`.`table_name` from 'username'@'ip'; |
删除用户
1 | drop user 'username'@'ip'; |