Kubesphere部署Mysql
如果同学们会docker创建容器,或者会docker-compose的话,是非常 简单的。
我们就看看docker-compose创建mysql容器的文件是怎么样的
version: '3.1'
services:
mysql:
container_name: "sob-mysql"
network_mode: "host"
environment:
MYSQL_ROOT_PASSWORD: "123456"
MYSQL_USER: 'root'
MYSQL_PASS: '123456'
image: "mysql:5.7.30"
restart: always
ports:
- 3306:3306
volumes:
- "/home/ubuntu/docker/mysql/db:/var/lib/mysql"
- "/home/ubuntu/docker/mysql/conf:/etc/mysql"
- "/home/ubuntu/docker/mysql/log:/var/log/mysql"
有名字、镜像、环境变量、端口、目录挂载。
配置文件准备
我们可以把配置文件独立配置,然后挂载到特定的地方
从上面的yaml文件,我们可以看到我把/etc/mysql挂载到了我ubuntu的conf目录下.
配置文件其实可以在多个地方,里面的代码是这样子的:
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
我们可以把配置文件放到/etc/mysql/mysql.conf.d/
或/etc/mysql/conf.d/
下。
在/etc/mysql/mysql.conf.d/
下有一个文件名为mysqld.cnf
的文件,这个是这个版本默认配置文件。我打算直接替换它既可。
在Kubephere上,我们可以通过配置的方式管理配置文件。
配置字典
填写配置名称和说明
点击添加数据
我修改了啥呢?
我这里主要是修改了编码,修改了sql模式,因为我要对一些进行group by,如果不配置的话,会报错的。
# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# The MySQL Server configuration file.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
#log-error = /var/log/mysql/error.log
# By default we only accept connections from localhost
#bind-address = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
保存,这样子就有了配置文件了。等下用的时候再跟大家说,怎么用的。
创建Mysql负载
有了前面的配置文件,我们就可以创建我们的工作负载了。
跟前面我们创建nacos的套路一下,mysql存储内容,属于有状态的负载。
我这里使用的mysql版本是mysql:5.7.30,对着前面的yaml文件吧。
我也没有做资源限制。一般来说,如果是自己写的程序还是限制一下好,万一有bug,吃很多的内存,就把其他应用干掉了。
设置端口,设置环境变量,还是对着前面的yaml文件来。
挂载存储卷
如果是在这里创建的,我们创建多个副本时,则会创建多个存储卷。如果直接在存储->存储卷下创建的,那么多个副本时,使用的是同一个存储卷。
配置完存储卷,配置一下配置文件。
这个时候就跟我们前面配置的mysqld.cnf有关了。
选择
设置读,或者读写都行,另外要注意的是,如果是文件夹,可以不设置子目录,不设置子目录意味着全部覆盖。如果是文件,那么就要设置子名称,看图。这样子的话,只是把你的配置扔进去,里面有其他的东西,不会清掉。
到这里就配置好了。
同样的,节点间是可以访问了,但是外网不可以访问。
还是要配置一下服务。
创建服务
跟前面的nacos环境搭建一样,创建服务。
这里面也没什么特殊的,就看看截图吧
今天写文章图片比较多,触发了上传限制,哈哈,稍后再把图片补充完吧。