此篇写MySQL中最基础,也是最重要的操作!
第一篇:屌炸天实战 MySQL 系列教程(一) 生产标准线上环境安装配置案例及棘手问题解决
第二篇:屌炸天实战 MySQL 系列教程(二) 史上最屌、你不知道的数据库操作
本章内容:
- SHOW DATABASES;
- # 默认数据库:
- mysql - 用户权限相关数据
- test - 用于用户测试数据
- information_schema - MySQL本身架构相关数据
- # utf-8 编码
- CREATE DATABASE 数据库名称 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
- # gbk 编码
- CREATE DATABASE 数据库名称 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
- USE db_name;
- # 可以不使用分号
- # 创建用户
- create user '用户名'@'IP地址' identified by '密码';
- # 删除用户
- drop user '用户名'@'IP地址';
- # 修改用户
- rename user '用户名'@'IP地址'; to '新用户名'@'IP地址';;
- # 修改密码
- set password for '用户名'@'IP地址' = Password('新密码')
- PS:用户权限相关数据保存在mysql数据库的user表中,所以也可以直接对其进行操作(不建议)
- # 查看当前用户
- select user();
- # 查看所有用户
- select host,user from mysql.user;
- # 人性化显示所有用户
- SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
- # 查看用户的所有权限
- show grants for 'nick'@'%';
- mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
- +---------------------------+
- | query |
- +---------------------------+
- | User: 'nick'@'%'; |
- | User: 'root'@'localhost'; |
- +---------------------------+
- 2 rows in set (0.00 sec)
- mysql>
- mysql>
- mysql>
- mysql>
- mysql> select host,user from mysql.user;
- +-----------+------+
- | host | user |
- +-----------+------+
- | % | nick |
- | localhost | root |
- +-----------+------+
- 2 rows in set (0.00 sec)
- mysql> show grants for 'nick'@'%';
- +-----------------------------------------------------------------------------------------------------+
- | Grants for nick@% |
- +-----------------------------------------------------------------------------------------------------+
- | GRANT USAGE ON *.* TO 'nick'@'%' IDENTIFIED BY PASSWORD '*ECE7D02DCD7D4EF7CFE8E3B249FD1D5062A821F7' |
- | GRANT ALL PRIVILEGES ON `kaoshi`.* TO 'nick'@'%' |
- | GRANT ALL PRIVILEGES ON `xxxxx`.* TO 'nick'@'%' |
- | GRANT ALL PRIVILEGES ON `xxxxxx`.`chouti` TO 'nick'@'%' |
- +-----------------------------------------------------------------------------------------------------+
- 4 rows in set (0.00 sec)
- mysql>
- # 查看权限
- show grants for '用户'@'IP地址'
- # 授权
- grant 权限 on 数据库.表 to '用户'@'IP地址'
- # 取消权限
- revoke 权限 on 数据库.表 from '用户'@'IP地址'
- 常用权限:
- all privileges 除grant外的所有权限
- select 仅查权限
- select,insert 查和插入权限
- usage 无访问权限
- 对于目标数据库以及内部其他:
- 数据库名.* 数据库中的所有
- 数据库名.表 指定数据库中的某张表
- 数据库名.存储过程 指定数据库中的存储过程
- *.* 所有数据库
- 对于用户和IP:
- 用户名@IP地址 用户只能在改IP下才能访问
- 用户名@192.168.1.% 用户只能在改IP段下才能访问(通配符%表示任意)
- 用户名@% 用户可以再任意IP下访问(默认IP地址为%)
- all privileges 除grant外的所有权限
- select 仅查权限
- select,insert 查和插入权限
- ...
- usage 无访问权限
- alter 使用alter table
- alter routine 使用alter procedure和drop procedure
- create 使用create table
- create routine 使用create procedure
- create temporary tables 使用create temporary tables
- create user 使用create user、drop user、rename user和revoke all privileges
- create view 使用create view
- delete 使用delete
- drop 使用drop table
- execute 使用call和存储过程
- file 使用select into outfile 和 load data infile
- grant option 使用grant 和 revoke
- index 使用index
- insert 使用insert
- lock tables 使用lock table
- process 使用show full processlist
- select 使用select
- show databases 使用show databases
- show view 使用show view
- update 使用update
- reload 使用flush
- shutdown 使用mysqladmin shutdown(关闭MySQL)
- super