网站建设结束的售后服务,微信 网站 收费,网站域名使用怎么做待摊分录,有网站怎么做app目录
1.创建外键约束
外键的定义
主键表和外键表的理解
具体操作
2.数据库用户管理
新建用户
查看用户信息
重命名用户
删除用户
修改当前和其他用户登录密码
忘记 root密码的解决办法
3.数据库用户授权
授予权限
查看权限
撤销权限 1.创建外键约束
外键的定义…目录
1.创建外键约束
外键的定义
主键表和外键表的理解
具体操作
2.数据库用户管理
新建用户
查看用户信息
重命名用户
删除用户
修改当前和其他用户登录密码
忘记 root密码的解决办法
3.数据库用户授权
授予权限
查看权限
撤销权限 1.创建外键约束
外键的定义
如果同一个属性字段X在表一中是主键而在表二中不是主键则字段X称为表二的外键。
主键表和外键表的理解
以公共关键字作主键的表为主键表父表、主表以公共关键字作外键的表为外键表从表、外表
注意与外键关联的主表的字段必须设置为主键。要求从表不能是临时表主从表的字段具备相同的数据类型、字符长度和约束。
具体操作
#创建主表 subject
create table subject (pid int(4),proname varchar(50));#创建从表 student
create table student (id int(4) primary key auto_increment,name varchar(10),age int(3),proid int(4));#为主表 subject 添加一个主键约束。主键名建议以“PK_”开头。
alter table subject add constraint PK_pid primary key (pid);#为从表 student 表添加外键并将 student 表的 proid 字段和 subject 表的 pid 字段建立外键关联。外键名建议以“FK_”开头。
alter table student add constraint FK_pro foreign key (proid) references subject (pid);desc student;#插入新的数据记录时要先主表再从表
insert into subject values(1,语文);
insert into subject values(2,数学);
insert into student values(1,zhangsan,18,1);
insert into student values(2,lisi,19,1);
insert into student values(3,wangwu,20,2);#删数数据记录时要先从表再主表也就是说删除主键表的记录时必须先删除其他与之关联的表中的记录。
delete from student where proid1;
delete from subject where pid1;#查看和删除外键约束
show create table student;
desc student;
alter table student drop foreign key FK_pro;
alter table student drop key FK_pro; 2.数据库用户管理
新建用户
create user 用户名来源地址 [identified by [PASSWORD] 密码];用户名指定将创建的用户名来源地址指定新创建的用户可在哪些主机上登录可使用IP地址、网段、主机名的形式本地用户可用localhost允许任意主机登录可用通配符%密码 若使用明文密码直接输入密码插入到数据库时由Mysql自动加密若使用加密密码需要先使用SELECT PASSWORD(密码); 获取密文再在语句中添加 PASSWORD 密文;若省略“IDENTIFIED BY”部分则用户的密码将为空不建议使用 查看用户信息
#创建后的用户保存在 mysql 数据库的 user 表里
use mysql;
select User,authentication_string,Host from user;#查看当前登录用户
select user();#登录用户
mysql -u用户名 -p密码 -hIP地址 -P大指定端口3306 重命名用户
RENAME USER lisilocalhost TO ybclocalhost;
#大写 删除用户
DROP USER yyyy; 修改当前和其他用户登录密码
SET PASSWORD PASSWORD(abc123);
#修改当前登录用户密码SET PASSWORD FOR user1localhost PASSWORD(abc123);
#修改其他用户密码 忘记 root密码的解决办法
1.修改 /etc/my.cnf vim /etc/my.cnf
[mysqld]
skip-grant-tables #添加使登录mysql不使用授权表systemctl restart mysqld
mysql #直接登录配置文件不使用密码直接登录到 mysql2.使用 update 修改 root 密码刷新数据库
UPDATE mysql.user SET AUTHENTICATION_STRING PASSWORD(abc123) where userroot;FLUSH PRIVILEGES;
quitmysql -u root -pabc123注意最后再把 /etc/my.cnf 配置文件里的 skip-grant-tables 删除并重启 mysql 服务。 3.数据库用户授权
授予权限
#权限列表用于列出授权使用的各种数据库操作以逗号进行分隔如“select,insert,update”。使用“all”表示所有权限可授权执行任何操作。 #数据库名.表名用于指定授权操作的数据库和表的名称其中可以使用通配符“*”。例如使用“kgc.*”表示授权操作的对象为 kgc数据库中的所有表。 #用户名来源地址用于指定用户名称和允许访问的客户机地址即谁能连接、能从哪里连接。来源地址可以是域名、IP地址还可以使用“%”通配符表示某个区域或网段内的所有地址如“%.kgc.com”、“192.168.80.%”等。 #IDENTIFIED BY用于设置用户连接数据库时所使用的密码字符串。在新建用户时若省略“IDENTIFIED BY”部分则用户的密码将为空。 GRANT语句专门用来设置数据库用户的访问权限。当指定的用户名不存在时GRANT语句将会创建新的用户当指定的用户名存在时 GRANT 语句用于修改用户信息。GRANT 权限列表 ON 数据库名.表名 TO 用户名来源地址 [IDENTIFIED BY 密码];#允许用户ybc在本地查询ybc数据库中所有表的数据记录但禁止查询其他数据库中的表的记录。
GRANT select ON ybc.* TO ybc192.168.88.% IDENTIFIED BY abc123;#允许用户 lisi 在所有终端远程连接 mysql 并拥有所有权限。
GRANT ALL [PRIVILEGES] ON *.* TO lisi% IDENTIFIED BY 123; 查看权限
SHOW GRANTS FOR 用户名来源地址;例
SHOW GRANTS FOR lisi%; 撤销权限
REVOKE 权限列表 ON 数据库名.表名 FROM 用户名来源地址;例
REVOKE ALL ON *.* FROM lisi%;SHOW GRANTS FOR lisi%;
#USAGE权限只能用于数据库登陆不能执行任何操作USAGE权限不能被回收即 REVOKE 不能删除用户。