大家好,我是安小生,本节文章说的是事务的隔离级别IO
读取未提交 ,简称:RU。 没有隔离性,所以在隔离级别中的性能是最好ode。
脏读 :指的是读到了其他事物提交的数据。即使是未提交
读取已提交 ,简称:RC。 性能相对而言比读取未提交要低。
不可重复读 :一致性。 性能相对而言比读取已提交要低。
可重复读取 ,简称:RR(默认)。
幻读的问题 :mvc 但是对于新增来时候可能依然存在。
串行化 :原本是多进程:强行转化为单进程。 在性能方面是最低的。但是解决的问题是最多的。
总结:从上往下依次降低,隔离级别的强度依次增强。
下面我们有一个图来进行解释:
读取未提交:不可重复读,幻读问题。
解决问问题:没有使用事物的时候数据不一致的问题,就是做到知行的sql一起成功,一起回滚。
脏读:可以读取到其他事物所知行的sql的结果=》脏读
假设事物1要进行回滚 *** 作,事务
读取未提交以及串行话不在我们权衡以及考虑的范围,。
执行 ./bin/mysqld --defaults-file=xxx --initialize-insecure 初始化data目录
./bin/mysqld_safe --defaults-file=/home/xxx/mysql/my.cnf &
运行后netstat -anlp | grep mysql 发现mysqld进程使用的是unix domain socket,没使用tcp/tcp6,没监听端口,看配置文件里面有一行 --skip-grant-tables,看官方文档,如果开启了--skip-grant-tables默认启用--skip-networking,这样就不允许远程连接了,因为--skip-grant-tables不安全。
https://www.oreilly.com/library/view/mysql-8-cookbook/9781788395809/6ea03335-6ff2-4d4f-a008-48c8cf88fd01.xhtml#:~:text=In%20this%20method%2C%20you%20stop,to%20connect%20to%20the%20server .
./bin/mysqladmin shutdown
mysql可以以docker的形式在集群内部署,也可以安装在集群之外,以服务的形式部署到集群内。(1)、如果是在集群内部署,可以启动一个ReplicationController,用以对mysql pod进行监控,并同时启动一个Service,用以集群访问。
(2)、如果mysql是安装在集群之外,那么可以启动一个Endpoint和Service,将mysql引入集群之中。
下面分别对这两种方式进行部署。
创建mysql-rc.yaml和mysql-svc.yaml,分别如下:
mysql-rc.yaml
mysql-svc.yaml
在mysql-rc.yaml中,image参数可以指定mysql的版本,如8.0.11、5.7.22等。这里省略了,表示用latest。另外,可以指定镜像库,这里使用阿里云镜像库,在安装docker时进行了配置。env参数指定了mysql的root密码。
在mysql-svc.yaml中,targetPort表示mysql pod中mysql窗口的目标端口,默认为3306,type类型为NodePort,表示将映射到本地端口,本地端口为nodePort: 30306。
接下来启动ReplicationController和Service,执行以下命令:
启动后可以查看mysql部署在了哪个node上,执行以下命令可以查看:
(6)、退出mysql和容器,执行quit退出mysql,按ctrl+p后,再按ctrl+q从容器中返回node主机。
设置好mysql后,可以远程连接node中的mysql,node的ip为127.0.0.1,映射的端口为30306,可以用navicat工具连接到这个myql。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)