MySQL 创建用户

命令行:

1
2
3
4
# 创建一个新用户 test ,密码设置为 123456
CREATE USER 'test'@'localhost' IDENTIFIED BY '123456';
# 刷新MySQL的系统权限相关表,使添加用户操作生效,以免会出现拒绝访问
flush privileges;

创建远程用户

1
2
3
4
5
6
# 从192.168.122.12登陆的用户
create user 'test'@'192.168.122.12' identified by '123456';
# 从任意ip登陆的用户
create user 'test'@'%' identified by '123456';
# 不做指定默认为'%'
create user 'test' identified by '123456';

修改用户密码

1
2
3
4
5
6
7
# 使用update指令,注意这里的password需要进行加密
use mysql;
update user set password = password('654321') where user = 'myname';
flush privileges;
#---------------或者------------------
set password for myname@'localhost'= password('654321');
flush privileges;

授权

全部权限

all代表全部权限(增删改查),*.* 代表全部的数据库的全部表,后面的@'%'是在任何 IP 都可以拥有这些权限命令:

1
2
3
# test用户对所有数据库拥有全部权限
grant all privileges on *.* to 'test'@'%';
flush privileges;

部分权限

我先创建个数据库 school,数据库里我又建了个表 students

1
2
create database school;
create table students;

把 school 这个数据库下面的 students 表的 select 权限赋给 test 用户,而且限制 IP 为192.168.122.12

1
grant select on school.students to test@192.168.122.12;

刷新权限,不然不生效

1
flush privileges;

撤销权限

1
2
3
4
# 撤销update权限
revoke update on school.* from test@localhost;
# 撤销所有权限
revoke all on school.* from 'test'@'%';

设置和更改用户密码

命令:

1
SET PASSWORD FOR 'test'@'localhost' = PASSWORD('654321');

如果是当前登陆用户用:

1
SET PASSWORD = PASSWORD("654321");

例子:

1
SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456");

删除用户

1
DROP USER 'username'@'host';

创建数据库

create database 数据库名;

1
2
3
CREATE DATABASE subtitle
CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;

删除数据库

1
drop database 数据库名;

进入数据库

1
mysql -u root -p