当前位置: 首页 > news >正文

网站整站优化wordpress首页筛选

网站整站优化,wordpress首页筛选,中秋贺卡手工制作图片 简单,网站设计网页首页介绍1 案例1#xff1a;主键 1.1 问题 完成如下练习#xff1a; 练习主键的创建、查看、删除、添加、验证主键练习复合主键的使用练习与auto_increment连用的效果 1.2 方案 主键使用规则#xff1a; 表头值不允许重复#xff0c;不允许赋NULL值一个表中只能有一个primary…1 案例1主键 1.1 问题 完成如下练习 练习主键的创建、查看、删除、添加、验证主键练习复合主键的使用练习与auto_increment连用的效果 1.2 方案 主键使用规则 表头值不允许重复不允许赋NULL值一个表中只能有一个primary key 表头多个表头做主键称为复合主键必须一起创建和删除主键标志PRI主键通常与auto_increment连用通常把表中唯一标识记录的表头设置为主键[行号表] 1.3 步骤 实现此案例需要按照如下步骤进行。 步骤一练习主键的创建、查看、删除、添加、验证主键 //语法格式1create table 库.表 表头名 数据类型 primary key , 表头名 数据类型 , ..... ;//建表mysql create table db1.t35(- name char(10) , - hz_id char(10) primary key , - class char(10) - );Query OK, 0 rows affected (0.49 sec)//查看表头mysql desc db1.t35;--------------------------------------------| Field | Type | Null | Key | Default | Extra |--------------------------------------------| name | char(10) | YES | | NULL | || hz_id | char(10) | NO | PRI | NULL | || class | char(10) | YES | | NULL | |--------------------------------------------3 rows in set (0.00 sec)//语法格式2create table 库.表 字段名 类型 , 字段名 类型 , primary key字段名 ;//建表mysql create table db1.t36(- name char(10) , - hz_id char(10) , - class char(10),- primary key(hz_id) - );Query OK, 0 rows affected (0.39 sec)//查看表头mysql desc db1.t36;--------------------------------------------| Field | Type | Null | Key | Default | Extra |--------------------------------------------| name | char(10) | YES | | NULL | || hz_id | char(10) | NO | PRI | NULL | || class | char(10) | YES | | NULL | |--------------------------------------------3 rows in set (0.00 sec)//删除主键命令格式mysql alter table 库.表 drop primary key ;//例子mysql alter table db1.t36 drop primary key ;Query OK, 0 rows affected (1.00 sec)Records: 0 Duplicates: 0 Warnings: 0//查看表头mysql desc db1.t36;--------------------------------------------| Field | Type | Null | Key | Default | Extra |--------------------------------------------| name | char(10) | YES | | NULL | || hz_id | char(10) | NO | | NULL | || class | char(10) | YES | | NULL | |--------------------------------------------3 rows in set (0.00 sec)mysql //添加主键命令格式mysql alter table 库.表 add primary key(表头名);//例子mysql alter table db1.t36 add primary key(hz_id);mysql desc db1.t36;--------------------------------------------| Field | Type | Null | Key | Default | Extra |--------------------------------------------| name | char(10) | YES | | NULL | || hz_id | char(10) | NO | PRI | NULL | || class | char(10) | YES | | NULL | |--------------------------------------------3 rows in set (0.00 sec)//使用t35表 验证主键约束//查看主键表头mysql desc db1.t35;--------------------------------------------| Field | Type | Null | Key | Default | Extra |--------------------------------------------| name | char(10) | YES | | NULL | || hz_id | char(10) | NO | PRI | NULL | || class | char(10) | YES | | NULL | |--------------------------------------------3 rows in set (0.00 sec)//插入第1条记录 正常mysql insert into db1.t35 values (bob,888,nsd2107);Query OK, 1 row affected (0.05 sec)//空不可以mysql insert into db1.t35 values (john,null,nsd2107); ERROR 1048 (23000): Column hz_id cannot be nullmysql //与第1条重复不可以mysql insert into db1.t35 values (john,888,nsd2107); ERROR 1062 (23000): Duplicate entry 888 for key PRIMARY//不重复也不是null可以mysql insert into db1.t35 values (john,988,nsd2107); Query OK, 1 row affected (0.07 sec)//查看表记录mysql select * from db1.t35 ;----------------------| name | hz_id | class |----------------------| bob | 888 | nsd2107 || john | 988 | nsd2107 |----------------------2 rows in set (0.00 sec) 步骤二练习复合主键的使用 //创建复合主键 表头依次是客户端ip 、服务端口号、访问状态mysql create table db1.t39(cip varchar(15) , port smallint , status enum(deny,allow) , primary key(cip,port));//插入记录验证insert into db1.t39 values (1.1.1.1,22,deny);insert into db1.t39 values (1.1.1.1,22,deny); 同时相同报错insert into db1.t39 values (1.1.1.1,80,deny); 可以insert into db1.t39 values (2.1.1.1,80,allow);可以//查看记录mysql select * from db1.t39;-----------------------| cip | port | status |-----------------------| 1.1.1.1 | 22 | deny || 1.1.1.1 | 80 | deny || 2.1.1.1 | 80 | allow |-----------------------3 rows in set (0.00 sec)//删除复合主键mysql alter table db1.t39 drop primary key;Query OK, 3 rows affected (1.10 sec)Records: 3 Duplicates: 0 Warnings: 0//查看表头mysql desc db1.t39;---------------------------------------------------------| Field | Type | Null | Key | Default | Extra |---------------------------------------------------------| cip | varchar(15) | NO | | NULL | || port | smallint | NO | | NULL | || status | enum(deny,allow) | YES | | NULL | |---------------------------------------------------------3 rows in set (0.00 sec)//没有复合主键约束后 插入记录不受限制了mysql insert into db1.t39 values(2.1.1.1,80,allow);Query OK, 1 row affected (0.06 sec)mysql insert into db1.t39 values(2.1.1.1,80,deny);Query OK, 1 row affected (0.08 sec)//查看表记录mysql select * from db1.t39;-----------------------| cip | port | status |-----------------------| 1.1.1.1 | 22 | deny || 1.1.1.1 | 80 | deny || 2.1.1.1 | 80 | allow || 2.1.1.1 | 80 | allow || 2.1.1.1 | 80 | deny |-----------------------5 rows in set (0.00 sec)//添加复合主键时 字段下的数据与主键约束冲突 不允许添加mysql alter table db1.t39 add primary key(cip,port);ERROR 1062 (23000): Duplicate entry 2.1.1.1-80 for key t39.PRIMARY//删除重复的数据mysql delete from db1.t39 where cip2.1.1.1;Query OK, 3 rows affected (0.05 sec)mysql select * from db1.t39;-----------------------| cip | port | status |-----------------------| 1.1.1.1 | 22 | deny || 1.1.1.1 | 80 | deny |-----------------------2 rows in set (0.00 sec)//添加复合主键mysql alter table db1.t39 add primary key(cip,port);Query OK, 0 rows affected (0.67 sec)Records: 0 Duplicates: 0 Warnings: 0//查看表头mysql desc db1.t39;---------------------------------------------------------| Field | Type | Null | Key | Default | Extra |---------------------------------------------------------| cip | varchar(15) | NO | PRI | NULL | || port | smallint | NO | PRI | NULL | || status | enum(deny,allow) | YES | | NULL | |---------------------------------------------------------3 rows in set (0.00 sec) 步骤三练习与auto_increment连用的效果 表头设置了auto_increment属性后 插入记录时如果不给表头赋值表头通过自加1的计算结果赋值 要想让表头有自增长 表头必须有主键设置才可以 查看表结构时 在 Extra 额外设置 位置显示 建表时 创建有auto_increment 属性的表头。实现的效果如下 行号 姓名 班级 住址 1 bob nsd2107 bj 2 bob nsd2107 bj 3 bob nsd2107 bj 4 bob nsd2107 bj 1建表 ysql create table db1.t38 (- 行号 int primary key auto_increment , - 姓名 char(10) , - 班级 char(7) , - 住址 char(10)- ); Query OK, 0 rows affected (0.76 sec) //查看表头 mysql desc db1.t38 ; ------------------------------------------------------ | Field | Type | Null | Key | Default | Extra | ------------------------------------------------------ | 行号 | int | NO | PRI | NULL | auto_increment | | 姓名 | char(10) | YES | | NULL | | | 班级 | char(7) | YES | | NULL | | | 住址 | char(10) | YES | | NULL | | ------------------------------------------------------ 4 rows in set (0.00 sec) //插入表记录 不给自增长表头赋值 mysql insert into db1.t38(姓名,班级,住址)values(bob,nsd2107,bj); Query OK, 1 row affected (0.05 sec) mysql insert into db1.t38(姓名,班级,住址)values(bob,nsd2107,bj); Query OK, 1 row affected (0.04 sec) mysql insert into db1.t38(姓名,班级,住址)values(tom,nsd2107,bj); Query OK, 1 row affected (0.05 sec) //查看表记录 mysql select * from db1.t38; --------------------------------- | 行号 | 姓名 | 班级 | 住址 | --------------------------------- | 1 | bob | nsd2107 | bj | | 2 | bob | nsd2107 | bj | | 3 | tom | nsd2107 | bj | --------------------------------- 3 rows in set (0.00 sec) 自增长使用注意事项 //给自增长字段的赋值mysql insert into db1.t38(行号,姓名,班级,住址)values(5,lucy,nsd2107,bj); Query OK, 1 row affected (0.26 sec)//不赋值后 用最后1条件记录表头的值1结果赋值mysql insert into db1.t38(姓名,班级,住址)values(lucy,nsd2107,bj); Query OK, 1 row affected (0.03 sec)//查看记录mysql select * from db1.t38 ;---------------------------------| 行号 | 姓名 | 班级 | 住址 |---------------------------------| 1 | bob | nsd2107 | bj || 2 | bob | nsd2107 | bj || 3 | tom | nsd2107 | bj || 5 | lucy | nsd2107 | bj || 6 | lucy | nsd2107 | bj |---------------------------------5 rows in set (0.00 sec)//删除所有行mysql delete from db1.t38 //再添加行 继续行号 而不是从 1 开始 mysql insert into db1.t38(姓名,班级,住址)values(lucy,nsd2107,bj);mysql insert into db1.t38(姓名,班级,住址)values(lucy,nsd2107,bj);mysql insert into db1.t38(姓名,班级,住址)values(lucy,nsd2107,bj);//查看记录mysql select * from db1.t38;---------------------------------| 行号 | 姓名 | 班级 | 住址 |---------------------------------| 8 | lucy | nsd2107 | bj || 9 | lucy | nsd2107 | bj || 10 | lucy | nsd2107 | bj |---------------------------------3 rows in set (0.01 sec)//truncate删除行 再添加行 从1开始mysql truncate table db1.t38; Query OK, 0 rows affected (2.66 sec)//插入记录mysql insert into db1.t38(姓名,班级,住址)values(lucy,nsd2107,bj);Query OK, 1 row affected (0.04 sec)mysql insert into db1.t38(姓名,班级,住址)values(lucy,nsd2107,bj);Query OK, 1 row affected (0.30 sec)//查看记录mysql select * from db1.t38;---------------------------------| 行号 | 姓名 | 班级 | 住址 |---------------------------------| 1 | lucy | nsd2107 | bj || 2 | lucy | nsd2107 | bj |---------------------------------2 rows in set (0.01 sec)mysql 2 案例2外键 2.1 问题 完成如下练习 练习外键的创建、查看、删除、添加验证外键功能 2.2 方案 外键使用规则 表存储引擎必须是innodb表头数据类型要一致被参照表头必须要是索引类型的一种(primary key) 作用 插入记录时表头值在另一个表的表头值范围内选择。 2.3 步骤 实现此案例需要按照如下步骤进行。 步骤一练习外键的创建、查看、删除、添加 //创建外键命令 create table 库.表(表头列表 , foreign key(表头名) #指定外键references 库.表(表头名) #指定参考的表头名on update cascade #同步更新on delete cascade #同步删除)engineinnodb; 需求 仅给公司里已经入职的员工发工资 首先创建存储员工信息的员工表 表名 yg 员工编号 yg_id 姓名 name #创建员工表create table db1.yg (yg_id int primary key auto_increment , name char(16) ) engineinnodb; 创建工资表 表名 gz 员工编号 gz_id 工资 pay #创建工资表 指定外键表头mysql create table db1.gz(gz_id int , pay float,foreign key(gz_id) references db1.yg(yg_id)on update cascade on delete cascade)engineinnodb ;//查看工资表外键mysql show create table db1.gz \G*************************** 1. row ***************************Table: gzCreate Table: CREATE TABLE gz (gz_id int(11) DEFAULT NULL,pay float DEFAULT NULL,KEY gz_id (gz_id),CONSTRAINT gz_ibfk_1 FOREIGN KEY (gz_id) REFERENCES yg (yg_id) ON DELETE CASCADE ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETlatin1//删除外键mysql alter table db1.gz drop FOREIGN KEY gz_ibfk_1;//查看不到外键mysql show create table db1.gz \G*************************** 1. row ***************************Table: gzCreate Table: CREATE TABLE gz (gz_id int(11) DEFAULT NULL,pay float DEFAULT NULL,KEY gz_id (gz_id)) ENGINEInnoDB DEFAULT CHARSETlatin11 row in set (0.00 sec)mysql //添加外键mysql alter table db1.gz add foreign key(gz_id) references db1.yg(yg_id) on update cascade on delete cascade ;//查看外键mysql show create table db1.gz \G*************************** 1. row ***************************Table: gzCreate Table: CREATE TABLE gz (gz_id int(11) DEFAULT NULL,pay float DEFAULT NULL,KEY gz_id (gz_id),CONSTRAINT gz_ibfk_1 FOREIGN KEY (gz_id) REFERENCES yg (yg_id) ON DELETE CASCADE ON UPDATE CASCADE) ENGINEInnoDB DEFAULT CHARSETlatin11 row in set (0.00 sec) 步骤二验证外键功能 外键字段的值必须在参考表字段值范围内验证同步更新 on update cascade)验证同步删除 on delete cascade) 1)、外键字段的值必须在参考表字段值范围内 员工表插入记录 mysql insert into db1.yg (name) values (jerry),(tom); mysql select * from db1.yg; 工资表插入记录 mysql insert into db1.gz values(1,50000); mysql insert into db1.gz values(2,60000); mysql select * from db1.gz; ----------------- | gz_id | pay | ----------------- | 1 | 50000 | | 2 | 60000 | ----------------- 2 rows in set (0.00 sec) #没有的3号员工 工资表插入记录报错 mysql insert into db1.gz values(3,50000); ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (db1.gz, CONSTRAINT gz_ibfk_1 FOREIGN KEY (gz_id) REFERENCES yg (yg_id) ON DELETE CASCADE ON UPDATE CASCADE) 员工表 插入编号3的员工 mysql insert into db1.yg (name) values (Lucy); mysql select * from db1.yg; 可以给3号员工 发工资了 mysql insert into db1.gz values(3,40000); 2)、验证同步更新 on update cascade) 查看员工表记录mysql select * from db1.yg;--------------| yg_id | name |--------------| 1 | jerry || 2 | tom || 3 | lucy |--------------3 rows in set (0.00 sec)把yg表里编号是3的改成9 mysql update db1.yg set yg_id9 where yg_id3; mysql select * from db1.yg;--------------| yg_id | name |--------------| 1 | jerry || 2 | tom || 9 | lucy |--------------3 rows in set (0.00 sec)工资表里编号是3的自动变成 9 mysql select * from db1.gz;-----------------| gz_id | pay |-----------------| 1 | 50000.00 || 2 | 60000.00 || 9 | 40000.00 |-----------------3 rows in set (0.00 sec)mysql 3)、验证同步删除 on delete cascade) 删除前查看员工表记录mysql select * from db1.yg; --------------| yg_id | name |--------------| 1 | jerry || 2 | tom || 9 | lucy |--------------3 rows in set (0.00 sec)删除编号2的员工mysql delete from db1.yg where yg_id2; Query OK, 1 row affected (0.04 sec)删除后查看mysql select * from db1.yg; --------------| yg_id | name |--------------| 1 | jerry || 9 | lucy |--------------2 rows in set (0.00 sec)查看工资表也没有编号2的工资了mysql select * from db1.gz; -----------------| gz_id | pay |-----------------| 1 | 50000 || 9 | 40000 |-----------------2 rows in set (0.00 sec)mysql 4)、外键使用注意事项 #被参考的表不能删除mysql drop table db1.yg;ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint failsmysql 给gz表的gz_id表头 加主键标签保证每个员工只能发1遍工资 且有员工编号的员工才能发工资# 如果重复发工资和没有编号的发了工资 删除记录后 再添加主键 delete form db1.gz;alter table db1.gz add primary key(gz_id); 保证每个员工只能发1遍工资 且有员工编号的员工才能发工资mysql insert into db1.gz values (1,53000); 报错mysql insert into db1.gz values (9,58000); 报错mysql insert into db1.gz values (NULL,80000); 报错 3 案例3MySQL索引 3.1 问题 完成如下练习 练习索引的创建、查看、删除、添加验证索引 3.2 方案 使用规则 一个表中可以有多个index任何数据类型的表头都可以设置索引表头值可以重复也可以赋NULL值通常在where条件中的表头上设置Indexindex索引标志MUL 3.3 步骤 实现此案例需要按照如下步骤进行。 步骤一练习索引的创建、查看、删除、添加 1)建表时创建索引命令格式 CREATE TABLE 库.表(字段列表 ,INDEX(字段名) ,INDEX(字段名) ); 例子 Create database home;Use home;CREATE TABLE tea4(id char(6),name varchar(6),age int(3),gender ENUM(boy,girl) DEFAULT boy,INDEX(id),INDEX(name)); 查看索引 查看表头是否有索引 des 库.表 例子 mysql desc home.tea4;-------------------------------------------------------| Field | Type | Null | Key | Default | Extra |-------------------------------------------------------| id | char(6) | YES | MUL | NULL | || name | varchar(6) | YES | MUL | NULL | || age | int(3) | YES | | NULL | || gender | enum(boy,girl) | YES | | boy | |-------------------------------------------------------4 rows in set (0.00 sec)mysql system ls /var/lib/mysql/home/tea4.ibd 保存排队信息的文件/var/lib/mysql/home/tea4.ibdmysql 查看索引详细信息 show index from 库.表 例子 show index from home.tea4 \G*************************** 1. row ***************************Table: tea4 #表名Non_unique: 1Key_name: id #索引名 默认索引名和表头名相同删除索引时使用的索引名Seq_in_index: 1Column_name: id #表头名Collation: ACardinality: 0Sub_part: NULLPacked: NULLNull: Index_type: BTREE #索引类型Comment: Index_comment: *************************** 2. row ***************************Table: tea4 #表名Non_unique: 1Key_name: name #索引名Seq_in_index: 1Column_name: name #表头名Collation: ACardinality: 0Sub_part: NULLPacked: NULLNull: Index_type: BTREE #排队算法Comment: Index_comment: 2 rows in set (0.00 sec)mysql 删除索引 命令格式 DROP INDEX 索引名 ON 库.表 例子 mysql drop index id on home.tea4 ;mysql desc home.tea4;-------------------------------------------------------| Field | Type | Null | Key | Default | Extra |-------------------------------------------------------| id | char(6) | YES | | NULL | || name | varchar(6) | YES | MUL | NULL | || age | int(3) | YES | | NULL | || gender | enum(boy,girl) | YES | | boy | |-------------------------------------------------------4 rows in set (0.14 sec)mysql show index from home.tea4 \G*************************** 1. row ***************************Table: tea4Non_unique: 1Key_name: nameSeq_in_index: 1Column_name: nameCollation: ACardinality: 0Sub_part: NULLPacked: NULLNull: Index_type: BTREEComment: Index_comment: 1 row in set (0.00 sec)mysql 已有表添加索引命令 CREATE INDEX 索引名 ON 库.表(字段名) 例子 mysql create index nianling on home.tea4(age);mysql desc home.tea4;-------------------------------------------------------| Field | Type | Null | Key | Default | Extra |-------------------------------------------------------| id | char(6) | YES | | NULL | || name | varchar(6) | YES | MUL | NULL | || age | int(3) | YES | MUL | NULL | || gender | enum(boy,girl) | YES | | boy | |-------------------------------------------------------4 rows in set (0.00 sec)mysql show index from home.tea4 \G*************************** 1. row ***************************Table: tea4Non_unique: 1Key_name: nameSeq_in_index: 1Column_name: nameCollation: ACardinality: 0Sub_part: NULLPacked: NULLNull: Index_type: BTREEComment: Index_comment: *************************** 2. row ***************************Table: tea4Non_unique: 1Key_name: nianling 设置的索引名Seq_in_index: 1Column_name: age 表头名Collation: ACardinality: 0Sub_part: NULLPacked: NULLNull: Index_type: BTREEComment: Index_comment: 2 rows in set (0.00 sec)mysql 步骤二验证索引 mysql desc tarena.user;-----------------------------------------------------------| Field | Type | Null | Key | Default | Extra |-----------------------------------------------------------| id | int | NO | PRI | NULL | auto_increment || name | char(20) | YES | | NULL | || password | char(1) | YES | | NULL | || uid | int | YES | | NULL | || gid | int | YES | | NULL | || comment | varchar(50) | YES | | NULL | || homedir | varchar(80) | YES | | NULL | || shell | char(30) | YES | | NULL | |-----------------------------------------------------------8 rows in set (0.00 sec) 2使用name表头做筛选条件,查找记录 mysql select * from tarena.user where namesshd;-----------------------------------------------------------------------------------------| id | name | password | uid | gid | comment | homedir | shell |-----------------------------------------------------------------------------------------| 17 | sshd | x | 74 | 74 | Privilege-separated SSH | /var/empty/sshd | /sbin/nologin |-----------------------------------------------------------------------------------------1 row in set (0.00 sec) 3验证是否使用索引 mysql explain select * from tarena.user where namesshd \G*************************** 1. row ***************************id: 1select_type: SIMPLEtable: user 表名partitions: NULLtype: ALLpossible_keys: NULLkey: NULL 使用的索引名key_len: NULLref: NULLrows: 27 查找的总行数filtered: 10.00Extra: Using where 额外说明1 row in set, 1 warning (0.00 sec) 4查看表的总行数查找sshd 用做的是全表扫描 mysql select count(*) from tarena.user;----------| count(*) |----------| 28 |----------1 row in set (0.01 sec) 5 给name表头设置索引 mysql create index name on tarena.user(name);Query OK, 0 rows affected (0.43 sec)Records: 0 Duplicates: 0 Warnings: 0mysql desc tarena.user; 查看-----------------------------------------------------------| Field | Type | Null | Key | Default | Extra |-----------------------------------------------------------| id | int | NO | PRI | NULL | auto_increment || name | char(20) | YES | MUL | NULL | || password | char(1) | YES | | NULL | || uid | int | YES | | NULL | || gid | int | YES | | NULL | || comment | varchar(50) | YES | | NULL | || homedir | varchar(80) | YES | | NULL | || shell | char(30) | YES | | NULL | |-----------------------------------------------------------8 rows in set (0.00 sec) 6验证索引 mysql explain select * from tarena.user where namesshd \G*************************** 1. row ***************************id: 1select_type: SIMPLEtable: user 表名partitions: NULLtype: refpossible_keys: namekey: name 使用的索引名key_len: 21ref: constrows: 1 查找的总行数filtered: 100.00Extra: NULL 额外说明1 row in set, 1 warning (0.00 sec) 4 案例4用户管理 4.1 问题 允许所有主机使用root连接数据库服务对所有库和所有表有完全权限、密码为123qqq…A允许192.168.88.0/24网段主机使用plj连接数据库服务仅对gamedb库有完全权限、密码为tarena允许在本机使用pljadmin用户连接数据库服务器仅对tarena库有查询、插入、更新、删除记录的权限密码为NSD2023…a允许192.168.88.51主机使用yaya用户连接数据库服务仅对tarena库有查询权限密码为tarena1给yaya用户追加插入记录的权限撤销plj用户删库、删表、删记录的权限删除pljadmin用户 4.2 方案 授权是在数据库服务器里添加用户并设置权限及密码重复执行grant命令时如果库名和用户名不变时是追加权限。授权步骤如下 授权信息保存在mysql库的如下表里 user表 保存已有的授权用户及用户对所有库的权限db表 保存已有授权用户对某一个库的访问权限tables_priv表 记录已有授权用户对某一张表的访问权限columns_priv表 记录已有授权用户对某一个表头的访问权限 在192.168.88.50 数据库服务器练习用户授权 在192.168.88.51 数据库服务器测试 4.3 步骤 实现此案例需要按照如下步骤进行。 步骤一在192.168.88.50 数据库服务器做如下授权练习 命令操作如下所示 //数据库管理员登陆]# mysql -uroot -pNSD2023...a 1允许所有主机使用root连接数据库服务对所有库和所有表有完全权限、密码为123qqq…A mysql create user root% identified by 123qqq...A; 创建用户Query OK, 0 rows affected (0.08 sec)mysql grant all on *.* to root% ; 授予权限Query OK, 0 rows affected (0.13 sec) 2允许192.168.88.0/24网段主机使用plj连接数据库服务仅对gamedb库有完全权限、密码为tarena mysql create user plj192.168.88.0/24 identified by tarena; 创建用户Query OK, 0 rows affected (0.06 sec)mysql grant all on gamedb.* to plj192.168.88.0/24; 授予权限Query OK, 0 rows affected (0.05 sec) 3允许在本机使用pljadmin用户连接数据库服务器仅对tarena库有查询、插入、更新、删除记录的权限密码为NSD2023…a mysql create user pljadminlocalhost identified by NSD2023...a; 创建用户Query OK, 0 rows affected (0.05 sec)mysql grant select , insert , update,delete on tarena.* to pljadminlocalhost;授予权限Query OK, 0 rows affected (0.06 sec) 4允许192.168.88.51主机使用yaya用户连接数据库服务仅对tarena库有查询权限密码为tarena1 mysql create user yaya192.168.88.51 identified by tarena1 ; 创建用户Query OK, 0 rows affected (0.10 sec)mysql grant select on tarena.* to yaya192.168.88.51; 授予权限Query OK, 0 rows affected (0.07 sec) 5给yaya用户追加插入记录的权限 mysql grant insert on tarena.* to yaya192.168.88.51;Query OK, 0 rows affected (0.05 sec) 6查看添加的用户 //添加的用户保存在 mysql库的user表里mysql select host,user from mysql.user; -----------------------------------| host | user |-----------------------------------| % | root || 192.168.88.0/24 | plj || 192.168.88.51 | yaya || localhost | mysql.infoschema || localhost | mysql.session || localhost | mysql.sys || localhost | pljadmin || localhost | root |-----------------------------------8 rows in set (0.00 sec)//查看已有用户的访问权限mysql show grants for yaya192.168.88.51; --------------------------------------------------------------| Grants for yaya192.168.88.51 |--------------------------------------------------------------| GRANT USAGE ON *.* TO yaya192.168.88.51 || GRANT SELECT, INSERT ON tarena.* TO yaya192.168.88.51 |--------------------------------------------------------------2 rows in set (0.00 sec)//用户对某一个库的访问权限保存在mysql库的db表里mysql select * from mysql.db where dbtarena and useryaya \G*************************** 1. row ***************************Host: 192.168.88.51Db: tarenaUser: yayaSelect_priv: YInsert_priv: YUpdate_priv: NDelete_priv: NCreate_priv: NDrop_priv: NGrant_priv: NReferences_priv: NIndex_priv: NAlter_priv: NCreate_tmp_table_priv: NLock_tables_priv: NCreate_view_priv: NShow_view_priv: NCreate_routine_priv: NAlter_routine_priv: NExecute_priv: NEvent_priv: NTrigger_priv: N1 row in set (0.00 sec)mysql 7撤销plj用户删库、删表、删记录的权限 mysql revoke delete,drop on gamedb.* from plj192.168.88.0/24 ; 8修改yaya用户的登陆密码为123456 mysql set password for yaya192.168.88.51123456 ;Query OK, 0 rows affected (0.05 sec) 9删除pljadmin用户 mysql drop user pljadminlocalhost ;Query OK, 0 rows affected (0.04 sec) 步骤二在192.168.88.51测试授权 命令格式 mysql -h数据库服务器ip地址 –u用户名 -p密码 1在mysql51连接mysql50 使用50 添加的yaya 用户 [rootmysql51 ~]# mysql -h192.168.88.50 -uyaya -p123456mysql show grants; //查看权限--------------------------------------------------------------| Grants for yaya192.168.88.51 |--------------------------------------------------------------| GRANT USAGE ON *.* TO yaya192.168.88.51 || GRANT SELECT, INSERT ON tarena.* TO yaya192.168.88.51 |--------------------------------------------------------------2 rows in set (0.00 sec)mysql select user();//查看登陆信息--------------------| user() |--------------------| yaya192.168.88.51 |--------------------1 row in set (0.00 sec)mysql insert into tarena.user(name,uid) values(jim,11); //权限内可以执行Query OK, 1 row affected (0.06 sec)mysql delete from tarena.salary ;ERROR 1142 (42000): DELETE command denied to user yaya192.168.88.51 for table salary //超出权限 报错mysql
http://www.hkea.cn/news/14355131/

相关文章:

  • 无锡网站设计哪家公司好建设部网站官网合同
  • 在车子男女做的视频网站为什么想做网站运营
  • 网站模板 整站源码下载网站域名解析设置
  • 佛山移动网站设计专业制作门户型网站
  • 优化网站的步骤案列吉林省工伤保险网站
  • 搭建个人网站教程赣州网站建设哪家便宜
  • 赤峰市网站建设培训定制家具十大品牌
  • 大型 视频网站开发中国建造师信息网官网
  • 九江公司网站建设快速的可视化平台
  • 唐山网站建设安顺市哪里可以做网站
  • 安顺住房和城乡建设部网站做网站建设的销售怎么样
  • 哪些网站是用iframe如何自学网站制作
  • 在线视频制作网站宝坻区建设路小学网站
  • 不要域名做网站网站备案查询工具
  • 一般做网站宽高多少网站目录怎么做301重定向
  • 无锡网站建设 app 微信平台设计什么意思
  • 厦门做网页网站的公司开发公司设计管理部绩效考核
  • 网站建设免费视频教学网站开发合同预期
  • 做社交网站怎么赚钱浙江百度查关键词排名
  • 杭州网站建设优化案例用什么网站可以做
  • 南昌地宝网招聘信息网最新招聘网站网站怎么优化关键词排名
  • 文学网站模板下载哈尔滨优化网站方法
  • 子网站如何做k2 wordpress
  • 产品网站更新内容上海网站建设安全
  • 新广告法 做网站的书写网站建设策划书
  • 闵行区网站制作河北住房和城乡建设厅网站电话
  • 私人网站建设成本软件开发外包公司哪个好
  • 网站建设公司的前景房地产设计公司
  • 万维网域名注册网站邯郸网站建设哪家专业
  • 钓鱼网站图片亚洲国产中文域名查询