第二百七十六节,MySQL数据库常用命令
Posted 林贵秀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第二百七十六节,MySQL数据库常用命令相关的知识,希望对你有一定的参考价值。
MySQL数据库,【显示、创建、选定、删除数据库】,【用户管理、对用户增删改查以及授权】
1、显示数据库
SHOW DATABASES;显示数据库
SHOW DATABASES;
mysql - 用户权限相关数据
sys - 数据库的相关配置存放的表
information_schema MySQL本身架构相关数据
performance_schema主要用于收集数据库服务器性能参数
2、创建数据库
CREATE DATABASE 数据库名称 DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 创建一个utf-8编码数据库
CREATE DATABASE jxiou DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
CREATE DATABASE 数据库名称 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; 创建一个gbk编码数据库
CREATE DATABASE jxioujjj DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
3、使用数据库
USE 数据库名称; 选定一个指定的数据库
USE jxiou
SHOW TABLES;显示当前使用的数据库中所有表
SHOW TABLES;
4、删除数据库
drop database 数据库名称; 删除一个指定的数据库
drop database jxioujjj;
5、用户管理
注意:默认的root用户是超级管理员
创建用户
create user \'用户名\'@\'IP地址\' identified by \'密码\'; 创建一个用户
create user \'xyhu\'@\'127.0.0.1\' identified by \'279819\';
查看MYSQL数据库中所有用户
SELECT DISTINCT CONCAT(\'User: \'\'\',user,\'\'\'@\'\'\',host,\'\'\';\') AS query FROM mysql.user;
SELECT DISTINCT CONCAT(\'User: \'\'\',user,\'\'\'@\'\'\',host,\'\'\';\') AS query FROM mysql.user;
删除用户
drop user
\'用户名\'
@
\'IP地址\'
;
drop user \'xyhu\'@\'127.0.0.1\';
修改用户名
rename user
\'用户名\'
@
\'IP地址\'
to
\'新用户名\'
@
\'IP地址\'
;
rename user \'xyhu\'@\'127.0.0.1\' to \'xyhuuu\'@\'127.0.0.1\';
修改密码
set password
for
\'用户名\'
@
\'IP地址\'
= Password(
\'新密码\'
);
set password for \'root\'@\'localhost\' = Password(\'279819\');
6、授权管理
PS:用户权限相关数据保存在mysql数据库的user表中,所以也可以直接对其进行操作(不建议)
查看用户权限
show grants for \'用户\'@\'IP地址\'; 查看一个指定用户权限
show grants for \'root\'@\'localhost\';
查看用户授权数据表结构
select * from mysql.user where user=\'用户名\' \\G; 查看用户授权数据表结构
//注:\\G为按列显示数据 select * from mysql.user where user=\'root\' \\G;
权限表说明
all privileges 除grant外的所有权限,除授权外的所有权限
Select_priv:用户可以通过SELECT命令选择数据。允许查看 Insert_priv:用户可以通过INSERT命令插入数据;允许查看和写入数据 Update_priv:用户可以通过UPDATE命令修改现有数据; Delete_priv:用户可以通过DELETE命令删除现有数据; Create_priv:用户可以创建新的数据库和表; Drop_priv:用户可以删除现有数据库和表; Reload_priv:用户可以执行刷新和重新加载MySQL所用各种内部缓存的特定命令,包括日志、权限、主机、查询和表;重新加载权限表; Shutdown_priv:用户可以关闭MySQL服务器;在将此权限提供给root账户之外的任何用户时,都应当非常谨慎; Process_priv:用户可以通过SHOW PROCESSLIST命令查看其他用户的进程;服务器管理; File_priv:用户可以执行SELECT INTO OUTFILE和LOAD DATA INFILE命令;加载服务器上的文件; Grant_priv:用户可以将已经授予给该用户自己的权限再授予其他用户(任何用户赋予全部已有权限); References_priv;目前只是某些未来功能的占位符;现在没有作用; Index_priv:用户可以创建和删除表索引;用索引查询表; Alter_priv:用户可以重命名和修改表结构; Show_db_priv:用户可以查看服务器上所有数据库的名字,包括用户拥有足够访问权限的数据库;可以考虑对所有用户禁用这个权限,除非有特别不可抗拒的原因; Super_priv:用户可以执行某些强大的管理功能,例如通过KILL命令删除用户进程,使用SET GLOBAL修改全局MySQL变量,执行关于复制和日志的各种命令;超级权限; Create_tmp_table_priv:用户可以创建临时表; Lock_tables_priv:用户可以使用LOCK TABLES命令阻止对表的访问/修改; Execute_priv:用户可以执行存储过程;此权限只在MySQL 5.0及更高版本中有意义; Repl_slave_priv:用户可以读取用于维护复制数据库环境的二进制日志文件;此用户位于主系统中,有利于主机和客户机之间的通信;主服务器管理; Repl_client_priv:用户可以确定复制从服务器和主服务器的位置;从服务器管理; Create_view_priv:用户可以创建视图;此权限只在MySQL 5.0及更高版本中有意义; Show_view_priv:用户可以查看视图或了解视图如何执行;此权限只在MySQL 5.0及更高版本中有意义; Create_routine_priv:用户可以更改或放弃存储过程和函数;此权限是在MySQL 5.0中引入的; Alter_routine_priv:用户可以修改或删除存储函数及函数;此权限是在MySQL 5.0中引入的; Create_user_priv:用户可以执行CREATE USER命令,这个命令用于创建新的MySQL账户; Event_priv:用户能否创建、修改和删除事件;这个权限是MySQL 5.1.6新增的; Trigger_priv:用户能否创建和删除触发器,这个权限是MySQL 5.1.6新增的; Create_tablespace_priv:创建表空间 ssl_type:支持ssl标准加密安全字段 ssl_cipher:支持ssl标准加密安全字段 x509_issuer:支持x509标准字段 x509_subject:支持x509标准字段 max_questions:0 每小时允许执行多少次查询 max_updates:0 每小时可以执行多少次更新 :0表示无限制 max_connections:0 每小时可以建立的多少次连接:0表示无限制 max_user_connections:0 单用户可以同时具有的连接数:0表示无限制 plugin:5.5.7开始,mysql引入plugins以进行用户连接时的密码验证,plugin创建外部/代理用户 authentication_string:通过authentication_string可以控制两者的映射关系,(PAM plugin等,PAM可以支持多个服务名)尤其是在使用代理用户时,并须声明这一点 password_expired:密码过期 Y,说明该用户密码已过期 N相反
给用户授权
grant 权限(对照上面权限表) on 数据库(要授权的数据库名称).表(数据库里的那张表) to \'用户\'@\'IP地址\';
对于目标数据库授权 数据库名.* 数据库中的所有 数据库名.表 指定数据库中的某张表 数据库名.存储过程 指定数据库中的存储过程 *.* 所有数据库 对于用户IP授权 用户名@IP地址 用户只能在改IP下才能访问 用户名@192.168.1.% 用户只能在改IP段下才能访问(通配符%表示任意) 用户名@% 用户可以再任意IP下访问(默认IP地址为%) 列如: grant all privileges on db1.tb1 TO \'用户名\'@\'IP\' grant select on db1.* TO \'用户名\'@\'IP\' grant select,insert on *.* TO \'用户名\'@\'IP\'
grant all privileges on *.* to \'xyhuuu\'@\'127.0.0.1\';
给用户取消权限
revoke 权限(对照上面权限表) on 数据库(要授权的数据库名称).表(数据库里的那张表) from \'用户\'@\'IP地址\';
对于目标数据库授权 数据库名.* 数据库中的所有 数据库名.表 指定数据库中的某张表 数据库名.存储过程 指定数据库中的存储过程 *.* 所有数据库 对于用户IP授权 用户名@IP地址 用户只能在改IP下才能访问 用户名@192.168.1.% 用户只能在改IP段下才能访问(通配符%表示任意) 用户名@% 用户可以再任意IP下访问(默认IP地址为%)
revoke all privileges on *.* from \'xyhuuu\'@\'127.0.0.1\';
以上是关于第二百七十六节,MySQL数据库常用命令的主要内容,如果未能解决你的问题,请参考以下文章
第三百七十六节,Django+Xadmin打造上线标准的在线教育平台—创建用户操作app,在models.py文件生成5张表,用户咨询表课程评论表用户收藏表用户消息表用户学习表