Target Server Type: MYSQL
Target Server Version : 50528
File Encoding : 65001
Date: 2016-09-14 14:40:37
*/
SET FOREIGN_KEY_CHECKS=0
-- ----------------------------
-- Table structure for tb_da_area
-- ----------------------------
DROP TABLE IF EXISTS `tb_da_area`
CREATE TABLE `tb_da_area` (
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。
错误提示:不能先将select出表中的某些值,再update这个表(在同一语句中)。
替换方案:
方案一:
多嵌套一层子查询,再进行删除,如下:
完整代码如下:
DELETE FROM blur_article WHERE id NOT IN (
SELECT id FROM (
SELECT min(id) AS id FROM blur_article GROUP BY title
) t
)
方案二:
1.创建一张临时表,将要删除的条件自动存入临时表中:
2.再根据临时表,删除主表数据:
3.最后删除掉临时表:
完整代码如下:
1.create table temp as select min(id) as col1 from blur_article group by title
2.delete from blur_article where id not in (select col1 from tmp)
3.drop table tmp
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)