连接数据库服务
客户端连接命令
mysql -uroot -p -- 回车后输入密码,或直接在p后面输入密码回车,但这样有泄露的风险
库操作
创建数据库
create database <数据库名>
例如:建立一个名为 cxl 的数据库
create database cxl
显示所有的数据库
show databases -- (注意:最后有个s)
删除数据库
drop database <数据库名>
例如:删除名为 cxl 的数据库
drop database cxl ;
连接数据库
use <数据库名>
例如:如果cxl 数据库存在,则进入:
use cxl ;
查看当前使用的数据库
select database();
当前数据库包含的表信息:
show tables;
权限操作
创建用户
使用CREATE USER
创建用户并设置密码(MySQL 8.0+推荐):
CREATE USER 'username'@'host' IDENTIFIED BY 'your_strong_password'; -- host的值决定了哪些IP能访问,如果只是本机访问则为 localhost,如果不限主机则为 %
授予权限
基本语法:
GRANT 权限列表 ON 对象 TO '用户'@'主机';
示例1:授予只读权限
允许用户read_user
从本地访问mydb
数据库的所有表:
GRANT SELECT ON mydb.* TO 'read_user'@'localhost';
示例2:授予多权限
允许用户dev_user
管理mydb
数据库的表结构和数据:
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP ON mydb.* TO 'dev_user'@'192.168.1.%';
示例3:授予全局权限
授予用户admin
全局权限(慎用!):
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
撤销权限
使用REVOKE
收回权限:
REVOKE 权限列表 ON 对象 FROM '用户'@'主机';
示例:撤销删除权限
REVOKE DELETE ON mydb.* FROM 'dev_user'@'192.168.1.%';
查看权限
查看当前用户的权限:
SHOW GRANTS;
查看指定用户的权限:
SHOW GRANTS FOR 'user'@'host';
删除用户
DROP USER 'user'@'host';