MySQL常用管理SQL语句
2020-04-30 16:01:36来源:博客园 阅读 ()
MySQL常用管理SQL语句
目录
- 前言
- DDL
- DCL
- DML
- 1.DDL语句之管理数据库
- 1.1.创建数据库
- 1.2.显示数据库
- 1.3.切换数据库
- 1.4.查看数据库包含的表信息
- 1.4.1.切换到数据库里面去查看表信息
- 1.4.2.在库外面查看库里的表信息
- 1.5.删除数据库
- 2.DDL&&DCL语句之管理用户
- 2.1.查看当前数据库的用户列表
- 2.2.创建数据库用户
- 2.3.删除数据库用户
- 2.4.授权数据库用户
- 2.4.1.创建test3用户,对test库具备所有权限,允许从localhost主机登录管理数据库,密码是123456。
- 2.4.2.授权与root同等地位的system用户权限。
- 2.5.授权的权限列表
- 2.6.企业中grant授权权限问题说明
- 2.6.1.企业里主数据库用户的授权问题说明
前言
DDL
DDL,中文为数据定义语言,DDL的特点是对数据库内部的对象进行create(创建)、alter(修改)、drop(删除)等操作,负责管理数据库的基础数据,不涉及对表中内容的操作和更改。
DCL
DCL,中文为数据控制语言,DDL的特点是对数据库内部的对象grant(用户授权)、revoke(权限回收)、commit(提交)、rollback(回滚)。
DML
DML,中文为数据操作语言,DML的特点是对数据库内部的对象insert(增)、delete(删)、update(改)、select(查),主要针对数据库中表内的数据进行操作。
1.DDL语句之管理数据库
1.1.创建数据库
create database test; #创建默认字符集数据库
create database test_gbk character set gbk collate gbk_chinese_ci; #创建gbk字符集数据库
create database test_utf8 character set utf8 collate utf8_general_ci; #创建utf8字符集数据库
show create database test\G #查看建库语句
1.2.显示数据库
show databases; #查看所有数据库
show databases like 'test'; #匹配test字符串的数据库
show databases like 'test%'; #%为通配符,表示匹配以test开头的所有数据库
1.3.切换数据库
use test; #切换到test库
select database(); #查看当前管理员所在的库名
1.4.查看数据库包含的表信息
1.4.1.切换到数据库里面去查看表信息
use test;
show tables;
1.4.2.在库外面查看库里的表信息
show tables from test; #查看指定库test中包含的表
show tables in test_gbk;
show tables from mysql like 'db%'; #匹配包含指定字符开头的表
1.5.删除数据库
drop database test_gbk; #删除test_gbk数据库
show databases like 'test_gbk';
2.DDL&&DCL语句之管理用户
2.1.查看当前数据库的用户列表
查看数据库用户列表属于DML负责的部分内容。
select user,host from mysql.user; #这里的select关键字表示查询,是DML语句的关键字之一,user和host为要查找的MySQL表的字段,from表示去哪查,mysql.user是MySQL库里的user表。数据库的标准用户由“用户”@“主机名”共同组成的,两者加起来是数据库用户的唯一标识。
2.2.创建数据库用户
create user test1@localhost identified by '123456';
select user,host from mysql.user; #查看所有数据库用户
create user test2@'192.168.1.%' identified by '123456';
select user,host from mysql.user where user='test2; #查看指定数据库用户
show grants for test2@'192.168.1.%';
#USAGE表示连接权限
2.3.删除数据库用户
drop user 'test1'@'localhost'; #删除数据库用户命令
select user,host from mysql.user where user='test1'; #删除后检查数据库用户
flush privileges; #使得处理用户后,对数据库生效,有数据库改动的情况,执行这个命令
delete from mysql.user where user='test2' and host='192.168.1.%';
flush privileges;
2.4.授权数据库用户
2.4.1.创建test3用户,对test库具备所有权限,允许从localhost主机登录管理数据库,密码是123456。
grant all privileges on test.* to 'test3'@'localhost' identified by '123456';
select user,host from mysql.user where user='test3';
show grants for 'test3'@'localhost';
#ALL PRIVILEGES就是授权的权限
2.4.2.授权与root同等地位的system用户权限。
show grants for root@localhost; #查看root用户的权限
grant all on *.* to 'system'@'localhost' identified by '123456' with grant option;
grant proxy on ''@'' to 'system'@'localhost' with grant option; #允许创建代理用户
show grants for system@localhost;
2.5.授权的权限列表
show grants for 'test3'localhost';
#ALL PRIVILEGES就是授权的权限
revoke select on test.* from 'test3'@'localhost';
show grants for 'test'@'localhost';
#权限ALL被拆分成了更细的权限
MySQL的ALL PRIVILEGES的权限列表
权限 | 说明 |
---|---|
SELECT | 查询(数据) |
INSERT | 插入(数据) |
UPDATE | 修改(数据) |
DELETE | 删除(数据) |
CREATE | 创建(数据库、表等对象) |
DROP | 删除(数据库、表等对象) |
RELOAD | 重载 |
SHUTDOWN | 关闭 |
PROCESS | 进程 |
FILE | 文件 |
REFERENCES | 参考资料 |
INDEX | 索引 |
ALTER | 修改(数据库、表等对象) |
SHOW DATABASES | 查看数据库 |
SUPER | 超级权限 |
CREATE TEMPORARY TABLES | 创建临时表 |
LOCK TABLES | 锁表 |
EXECUTE | 执行 |
REPLICATION SLAVE | 从复制权限 |
REPLICATION CLIENT | 从客户端复制 |
CREATE VIEW | 创建视图 |
SHOW VIEW | 查看视图 |
CREATE ROUTINE | 创建存储过程 |
ALTER ROUTINE | 修改存储过程 |
CREATE USER | 创建用户 |
EVENT | 事件 |
TRIGGER | 触发器 |
CREATE TABLESPACE | 创建表空间 |
2.6.企业中grant授权权限问题说明
2.6.1.企业里主数据库用户的授权问题说明
在企业生产环境中,如果是以web形式连接数据库的用户,那么尽量不要授予all权限,最好是分拆授权,比如,授予select、insert、update、delete等适合web使用的DML语句关键字权限。
grant select,insert,update,delete on oldboy.* to test3@'172.16.1.%' identified by '123456';
#注意:授权用户权限时有如下3条安全红线不要轻易跨过。
1、权限不能用all,要应用select、insert、update、delete等具体权限。
2、库不能用"*.*",而应用"oldboy.*"格式具体到库。
3、主机不能用%,而应用内网IP段,即'192.168.0.%'格式。
PHP程序语言连接MySQL的代码:
<?php
//$link_id=mysql_connect('数据库主机名','用户','密码');
$link_id=mysql_connect('172.16.1.7')
if($link_id){
echo "mysql successful by oldboy !";
}else{
echo mysql_error();
}
?>
原文链接:https://www.cnblogs.com/yanyanqaq/p/12810236.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- centos7下安装mysql6初始化安装密码 2020-06-05
- linux的常用命令 2020-06-04
- 容器技术之Docker常用命令说明 2020-05-30
- Linux系统CentOS6.9 x64 配置jdk和MySQL8.0环境,授予MySQL 2020-05-27
- #Linux学习# 用户和用户组管理 2020-05-26
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash