mysql 设备_MySQL高级

一、视图:

通俗的讲,视图就是一条SELECT语句执行后返回的结果集。 所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。

视图是对若干张基本表的引用,一张虚表,查询语句执行的结果,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变);

方便操作,特别是查询操作,减少复杂的SQL语句,增强可读性;

视图的作用:

提高了重用性,就像一个函数

对数据库重构,却不影响程序的运行

提高了安全性能,可以对不同的用户

让数据更加清晰

定义视图:

1 --建议以v_开头

2 create view 视图名称 as select语句;

查看视图:

1 --查看表会将所有的视图也列出来

2 show tables;

使用视图:

1 --视图的用途就是查询

2 select * from v_stu_score;

删除视图:

1 drop view视图名称;2 例:3 drop view v_stu_sco;

视图demo:

bf8c4326b462cd45dc11ed61cd3b39c8.png

c7b020e68c150073db3a839ea235b5d0.png

d6fe6a696b3a99e6e5bd3d6d6d6e0952.png

80656916ec37318dbe90765bf648bb66.png

二、事务:

所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。

事务广泛的运用于订单系统、银行系统等多种场景

事务四大特性(ACID):

原子性

一致性

隔离性

持久性

事务命令(表的引擎类型必须是innodb类型才可以使用事务,这是mysql表的默认引擎):

查看表的引擎:

1 --选择数据库

2 usejing_dong;3 --查看goods表

4 show create table goods;

开启事务:

1 begin;2 或者3 start transaction;

提交事务:

1 commit;

回滚事务:

1 rollback;

注意

修改数据的命令会自动的触发事务,包括insert、update、delete

而在SQL语句中有手动开启事务的原因是:可以进行多次数据的修改,如果成功一起成功,否则一起会滚到之前的数据

三、索引:

索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。

更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度

索引相关命令:

查看索引:

1 show index from 表名;

创建索引

如果指定字段是字符串,需要指定长度,建议长度与定义字段时的长度一致

字段类型如果不是字符串,可以不填写长度部分

1 create index 索引名称 on 表名(字段名称(长度))

删除索引:

1 drop index 索引名称 on 表名;

四、账户管理

在生产环境下操作数据库时,绝对不可以使用root账户连接,而是创建特定的账户,授予这个账户特定的操作权限,然后连接进行操作,主要的操作就是数据的crud

MySQL账户体系:根据账户所具有的权限的不同,MySQL的账户可以分为以下几种

服务实例级账号:,启动了一个mysqld,即为一个数据库实例;如果某用户如root,拥有服务实例级分配的权限,那么该账号就可以删除所有的数据库、连同这些库中的表

数据库级别账号:对特定数据库执行增删改查的所有操作

数据表级别账号:对特定表执行增删改查等所有操作

字段级别的权限:对某些表的特定字段进行操作

存储程序级别的账号:对存储程序进行增删改查的操作

账户的操作主要包括创建账户、删除账户、修改密码、授权权限等

注意:

进行账户操作时,需要使用root账户登录,这个账户拥有最高的实例级权限

通常都使用数据库级操作权限

授予权限:

查看所有账户:

1 select host,user,authentication_string from user;

创建账户、授权:

1 grant 权限列表 on 数据库 to '用户名'@'访问主机' identified by '密码';

账户操作:

修改权限:

1 grant 权限名称 on 数据库 to 账户@主机 with grant option;

修改密码:

1 update user set authentication_string=password('新密码') where user='用户名';2 例:3 update user set authentication_string=password('123') where user='laowang';4

5 --注意修改完成后需要刷新权限

6 --刷新权限:flush privileges

五、主从同步:

主从同步使得数据可以从一个数据库服务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave)。因为复制是异步进行的,所以从服务器不需要一直连接着主服务器,从服务器甚至可以通过拨号断断续续地连接主服务器。通过配置文件,可以指定复制所有的数据库,某个数据库,甚至是某个数据库上的某个表。

使用主从同步的好处:

通过增加从服务器来提高数据库的性能,在主服务器上执行写入和更新,在从服务器上向外提供读功能,可以动态地调整从服务器的数量,从而调整整个数据库的性能。

提高数据安全,因为数据已复制到从服务器,从服务器可以终止复制进程,所以,可以在从服务器上备份而不破坏主服务器相应数据

在主服务器上生成实时数据,而在从服务器上分析这些数据,从而提高主服务器的性能

同步步骤:

1.在主服务器Ubuntu上进行备份,执行命令:

1 mysqldump -uroot -pmysql --all-databases --lock-all-tables > ~/master_db.sql

说明

-u :用户名

-p :示密码

--all-databases :导出所有数据库

--lock-all-tables :执行操作时锁住所有表,防止操作时有数据修改

~/master_db.sql :导出的备份数据(sql文件)位置,可自己指定

2.在从服务器ubuntu上进行数据还原

1 mysql –uroot –pmysql < master_db.sql

3.配置主服务器master(Ubuntu中的MySQL)

1 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

eaa3938de0cc0451c3fbf3f2996f4f32.png

4.重启主服务器mysql

1 sudo service mysql restart

5.登入主服务器Ubuntu中的mysql,创建用于从服务器同步数据使用的帐号

1 mysql –uroot –pmysql2 GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' identified by 'slave';3 FLUSH PRIVILEGES;

6.获取主服务器的二进制日志信息

1 SHOW MASTER STATUS;2 --记住File和Position,配置从服务器时会用到

7.配置从服务器slave

1 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

16cfff86b084fcb2387150c6c5079101.png

8.进入从服务器的mysql,设置连接到master主服务器

change master to master_host='10.211.55.5', master_user='slave', master_password='slave',master_log_file='mysql-bin.000006', master_log_pos=590;

注:

master_host:主服务器Ubuntu的ip地址

master_log_file: 前面查询到的主服务器日志文件名

master_log_pos: 前面查询到的主服务器日志文件位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值