一、视图
- 介绍
视图相当于一张虚拟表,通过一些sql语句存储一张虚拟表,当原表修改后,视图表也会响应的修改 - 作用
方便查询 - 创建视图
create view v_视图名 as select语句
注:视图名没有特定的要求,以v开头,增加可读性
- 查看视图
select * fron 视图名
- 删除视图
drop view 视图名
**
注:
视图只是为了方便查询,所以只有查询操作,无法进行删除、查找、修改等操作
二、事务
-
介绍
就是一系列操作序列,这些操作序列要么都成功,要么都失败(只要其中某一个操作失败,事务中所有的操作都失败) -
四大特性(ACID)
原子性(Atomicity)
一致性(Consistency)
隔离性(Isolation)
持久性(Durability)
原子性: 一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性
一致性:数据库总是从一个一致性的状态转换到另一个一致性的状态
隔离性:通常来说,一个事务所做的修改在最终提交以前,对其他事务是不可见的
持久性:一旦事务提交,则其所做的修改会永久保存到数据库。(此时即使系统崩溃,修改的数据也不会丢失。) -
事务操作一般流程
1.开启事务
start transaction; 或者 begin;
- 执行一系列sql语句(一系列操作序列)
sql语句
- 回滚事务
rollback; # 撤销之前的sql操作
- 提交事务
commit;
三、索引
- 介绍
索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针
- 作用
加快数据库的查询速度
- 查看索引
show index from 表名
- 创建索引
create index 索引名称 on 表名(字段名称(长度))
注:①如果指定字段是字符串,需要指定长度,建议长度与定义字段时 的长度一致
②字段类型如果不是字符串,可以不填写长度部分
- 删除索引
drop index 索引名称 on 表名;
四、账户管理
- MySQL账户体系
服务实例级账号:,启动了一个mysqld,即为一个数据库实例;如果,拥有服务实例级分配的权限,那么该账号就可以删除所有的数据库、连同这些库中的表
数据库级别账号:对特定数据库执行增删改查的所有操作
数据表级别账号:对特定表执行增删改查等所有操作
字段级别的权限:对某些表的特定字段进行操作
存储程序级别的账号:对存储程序进行增删改查的操作 - 查看用户(以root用户登录为例)
desc user;
select host,user,authentication_string from user;
字段说明:
host表示允许访问的主机
user表示用户名
authentication_string表示密码,为加密后的值
注:所有用户及权限信息存储在mysql数据库的user表中
- 创建用户
grant 权限列表 on 数据库 to ‘用户名’@‘访问主机’ identified by ‘密码’;
- 查看用户的权限
show grants for 用户名@localhost;
- 以指定用户登录mysql
mysql -uroot -p密码
- 修改权限
grant 权限名称 on 数据库 to 账户@主机 with grant option;
- 修改密码
update user set authentication_string=password(‘新密码’) where user=‘用户名’;
- 删除用户
方式一:
drop user ‘用户名’@‘主机’;
方式二:
delete from user where user=‘用户名’; flush
privileges
五、 MySQL主从同步机制
介
- 绍
主从同步使得数据可以从一个数据库服务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave)
- 优势
①通过增加从服务器来提高数据库的性能,在主服务器上执行写入和更新,在从服务器上向外提供读功能,可以动态地调整从服务器的数量,从而调整整个数据库的性能。
②提高数据安全,因为数据已复制到从服务器,所以,可以在从服务器上备份而不破坏主服务器相应数据
③在主服务器上生成实时数据,而在从服务器上分析这些数据,从而提高主服务器的性能
- 操作步骤
1.登录主服务器: 备份主服务器的原有数据
mysqldump -u用户名 -p密码 --all-databases --lock-all-tables > 文件名.sql
注: > 重定向输出操作
2.登录从服务器:还原主服务器中的数据
mysql –u用户名 –p密码 < 文件名.sql
注:< 重定向输入操作,文件需和mysql.exe在同一目录,或着写文件的绝对路径
3.配置主服务器
vim /etc/mysql/mysql.conf.d/mysqld.cnf 打开配置文件
server_id = 1
log_bin = /var/log/mysql/mysql_bin.log # 去掉这两行前面的#号
4.创建用于从服务器同步数据使用的帐号并刷新权限
GRANT REPLICATION SLAVE ON . TO ‘从服务器名’@‘容许登录的主机’ identified by ‘从服务器密码’;
FLUSH PRIVILEGES; 刷新权限
5.获取主服务器的二进制日志信息
show master status;
6.重启主服务器
service mysql restart
6.配置从服务器
windows从服务器:修改mysql安装目录下的my.ini文件
linux从服务器:vim /etc/mysql/mysql.conf.d/mysqld.cnf
server_id = 2 #不能与主数据库值相同
7.重启从服务器
windows从服务器:在任务管理器(ctrl+shift+esc)的服务中重启mysql
linux从服务器:service mysql restart
8.设置从服务器连接到master主服务器
change master to master_host=‘主服务器up地址’, master_user=‘从服务器用户名’,
master_password=‘从服务器密码’,master_log_file=‘主服务器的file信息’,
master_log_pos=主服务器的pos信息;
9.开启同步,查看同步状态
登录从服务器
开始同步:start 从服务器名
查看同步状态:show slave status \G;