一个数据库的建库语句
1、show create table tbl_name;
2、show create database db_name;
十三、如何查看MySQL支持的数据类型以及数据类型如何使用
mysql> help contents;
mysql> help data types;
mysql> help ……
十四、列举show命令常用的语法
1、show status like …… 查看状态值
2、show variables like …… 查看变量参数值
3、show create …… 查看建表、库……的语句信息
4、show procedure status where db='db_name'\G; #查看存储过程信息
5、show warnings\G; #查看警告信息
十五、help kill如何使用
mysql> help kill
KILL [CONNECTION | QUERY] processlist_id
注:Thread processlist identifiers can be determined from the ID column of the INFORMATION_SCHEMA.PROCESSLIST table。
mysql> select * from INFORMATION_SCHEMA.PROCESSLIST\G;
十六、描述MySQL用户名组成以及特点
1、MySQL用户身份识别认证:用户名user、密码password、登录mysqld主机host
shell> mysql -uroot -p123 -h172.16.11.99
-u:登录的用户名
-p:登录用户对应的密码
-h:MySQL服务器主机IP,默认是localhost的IP
2、MySQL的用户管理模块的特点:客户端请求连接,提供host、username、password,用户管理模块进行验证请求连接,通过mysql.user表进行校验信息。
十七、如何查看MySQL有多少用户以及对应的权限
1、mysql> select count(*) from mysql.user; #查看MySQL有多少用户
2、mysql> select * from mysql.user\G; #用户信息查询(权限)
十八、建立一个用户
1、本地登录
mysql> create user 'u1'@'localhost' identified by '123';
2、任意都可以登录
mysql> create user 'u2'@'%' identified by '123';
3、某一个网段可以登录
mysql> create user 'u3'@'172.16%' identified by '123';
4、具体主机可以登录
mysql> create user 'u4'@'172.16.12.24' identified by '123';
十九、使用help grant,给用户赋权
二十、建立一个db1数据库的只读用户
建用户然后授权
mysql> GRANT SELECT ON db1.* TO 'olr_user'@'%';
二十一、建立一个只能进行系统状态信息查询的管理用户
mysql> grant select on information_schema.* to 'admin_user'@'%';
二十二、建立一个db1的生产用户,只能进行dml、select,不能进行ddl
mysql> grant select,insert,update,delete on *.* to 'pro_user'@'%';
二十三、建立一个可以进行DDL的管理用户
mysql> grant create,drop,alter on *.* to 'admin_user'@'%';
二十四、建立一个工资表,只有指定的用户可以访问工资列,其他用户都不能访问工资列
实现步骤:
先在mysql.user里将所有用户检索出来,进行跑批处理(脚本或存储过程)revoke对该表列的权限;
然后grant创建用户,并对该表列赋访问权限。
二十五、查询上述用户以及所赋权限是否正确,同时进行验证
mysql> select * from mysql.user\G; #查看MySQL用户信息
进行用户登录验证
二十六、解释with grant option,并且演示其功能
mysql> grant all on *.* to 'zhang'@'%' identified by '123' with grant option;
with grant option子句:通过在grant语句的最后使用该子句,就允许被授权的用户把得到的权限继续授给其他用户。也就是说,客户端用zhang用户登录MySQL,可以将zhang用户有的权限使用grant进行授权给其他用户。
二十七、查询某一个表上的权限、查看某一个列上的权限、查看某一个数据库上面的权限
1、 查询所有数据库的权限
mysql> select * from mysql.user;
2、 查询某个数据库的权限
mysql> select * from mysql.db;
3、 查询某个数据库中某个表的权限
mysql> select * from mysql.tables_priv;
4、 查询某个数据库某个表中某个列的权限
mysql> select * from mysql.columns_priv;
二十八、修改参数运行使用grant建立用户,修改参数禁止grant建立用户
sql_mode参数中的NO_AUTO_CREATE_USER值:不自动创建用户
mysql>set @@session.sql_mode=……; #设置sql_mode参数
二十九、修改mysql的用户密码,分别使用grant、alter、set修改
①mysql> grant all on *.* to '用户名'@'登录主机' identified by '密码';
②mysql> alter user '用户名'@'登录主机' identified by '密码(自定义)';
③mysql> SET PASSWORD FOR '用户名'@'登录主机' = PASSWORD('密码');
三十、破解密码步骤:
①到/etc/my.cnf 里将 validate_password=off 行注释 //关闭密码策略
②shell> mysqld_safe --skip-grant-tables & //重启数据库
③shell> mysql -uroot //无密码登录
④mysql> flush privileges; //刷新权限使密码生效
⑤修改密码,退出,重启数据库,进入
三十一、使用revoke进行权限的收回,将上面用户的授权分别收回,同时查看收回后的结果
①REVOKE INSERT ON *.* FROM 'jeffrey'@'localhost';
②REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...
三十二、select最简单常用语法
1、全表查询
select * from tbl_name;
2、某些行查询
select * from tbl_name where ……;
3、某些列查询
select clm_name from tbl_name;
4、某些行的某些列查询
select clm_name from tbl_name where ……;
5、列别名
select clm_na