Centos下用Saltstack源码安装Mysql

简介:

SaltStack是
一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,一般可以理解为简化版的puppet和加强版的func。SaltStack基
于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、
python-msgpack和PyYAML等)构建。

最近工作比较闲,所以继续学习saltstack,今天就用源码来安装Mysql数据库,学saltstack还是得多实践,废话不多说,上干货。

实验环境

Master: www.master.com 10.0.4.52   Centos6.5
Slave:  www.slave.com  10.0.4.53   Centos6.5

开始部署:

# cat top.sls 
base:
  ‘*‘:
    - init.install
    - mysql.install

目录结构:

# tree init/
init/
└── install.sls                #主要安装mysql数据库需要的依赖库。
# tree mysql/                  #文件内容下面会给出。
mysql/
├── init.sh
├── install.sls
├── my.cnf                  #mysql的主配置文件,自己根据要求来配置。
├── mysql-5.6.14.tar.gz
└── mysqld                   #mysql的启动脚本,即是/etc/init.d/mysqld。
0 directories, 5 files

初始化配置文件:

# cat init/install.sls 
pkg-init:  
  pkg.installed:
    - names:
      - gcc
      - gcc-c++
      - glibc
      - make
      - autoconf
      - libjpeg-turbo
      - libjpeg-turbo-devel
      - libpng
      - libpng-devel
      - freetype
      - freetype-devel
      - libxml2
      - libxml2-devel
      - zlib
      - zlib-devel
      - libcurl
      - libcurl-devel
      - openssl
      - openssl-devel
      - swig
      - cmake
      - ncurses
      - ncurses-devel
      - libtool-ltdl-devel

安装mysql主配置文件:

# cat mysql/install.sls
include:
  - init.install

mysql-source-install:
  file.managed:
    - name: /usr/local/src/mysql-5.6.14.tar.gz
    - source: salt://mysql/mysql-5.6.14.tar.gz
    - user: root
    - group: root
    - mode: 755
  cmd.run:
    - name: cd /usr/local/src/ && tar xf mysql-5.6.14.tar.gz && cd mysql-5.6.14 && cmake -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql5.6/ -DMYSQL_DATADIR=/usr/local/webserver/mysql5.6/data -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci && make && make install
    - require:
      - file: mysql-source-install
    - unless: test -d /usr/local/webserver/mysql5.6

mysql-init:
  file.managed:
    - name: /usr/local/src/init.sh
    - source: salt://mysql/init.sh
    - user: root
    - group: root
    - mode: 755
  cmd.script:
    - name: /usr/local/src/init.sh
    - require:
      - cmd: mysql-source-install

mysql-config:
  file.managed:
    - name: /usr/local/webserver/mysql5.6/my.cnf
    - source: salt://mysql/my.cnf
    - user: root
    - group: root
    - mode: 644
    - require:
      - file: mysql-init

mysql-service:
  file.managed:
    - name: /etc/init.d/mysqld
    - source: salt://mysql/mysqld
    - user: root
    - group: root
    - mode: 755
  cmd.run:
    - name: chkconfig --add mysqld
    - unless: chkconfig --list |grep mysqld
    - require:
      - file: mysql-service
  service.running:
    - name: mysqld
    - require:
      - cmd: mysql-service

Mysql初始化脚本:

# cat mysql/init.sh 
#!/bin/bash

groupadd mysql            #saltstack也可以创建mysql用户和组,这里就直接让它引用这个脚本。
useradd -r -g mysql mysql
ln -s /usr/local/webserver/mysql5.6/bin/mysql /usr/bin/
cd /usr/local/webserver/mysql5.6/scripts/ && ./mysql_install_db --basedir=/usr/local/webserver/mysql5.6/ --datadir=/usr/local/webserver/mysql5.6/data/
rm -rf /etc/my.cnf
cp -a /usr/local/webserver/mysql5.6/support-files/my-default.cnf /usr/local/webserver/mysql5.6/my.cnf
chown mysql:mysql /usr/local/webserver/mysql5.6/ -R

好激动,要执行安装了

#salt ‘www.slave.com‘ state.highstate   #强烈建议执行这命令之前先执行salt ‘www.slave.com‘ state.highstate test=True来测试实验是否成功。

..........................................................
----------
          ID: mysql-service
    Function: cmd.run
        Name: chkconfig --add mysqld
      Result: True
     Comment: unless execution succeeded
     Started: 11:01:55.890689
    Duration: 519.892 ms
     Changes:   
----------
          ID: mysql-service
    Function: service.running
        Name: mysqld
      Result: True
     Comment: Started Service mysqld
     Started: 11:01:56.414994
    Duration: 2598.256 ms
     Changes:   
              ----------
              mysqld:
                  True

Summary
-------------
Succeeded: 32 (changed=5)
Failed:     0
-------------
Total states run:     32

minion端查看:

# netstat -anlp |grep mysqld
tcp        0      0 :::3306                     :::*                        LISTEN      29890/mysqld        
unix  2      [ ACC ]     STREAM     LISTENING     897638 29890/mysqld        /var/lib/mysql/mysql.sock

从上面看出mysql已经在minion端安装成功了,之前各种报错,各种调试。总算成功了。还是那句话,多动手。

时间: 2024-08-02 23:07:49

Centos下用Saltstack源码安装Mysql的相关文章

通过saltstack源码安装mysql

tree /srv/salt /srv/salt |-- mysql |   |-- conf.sls |   |-- files |   |  |-- conf.sh |   |  |-- my.cnf |   |  |-- mysql-5.5.33.tar.gz |   |  |-- mysqld |   |  `-- mysqllns.sh |   |-- init.sls |   `-- install.sls `-- top.sls cat /srv/salt/top.sls base

CentOS 7下源码安装MySQL 5.7

网上说linux安装mysql服务分两种安装方法: ①源码安装,优点是安装包比较小,只有几十M左右,缺点是安装依赖的库多,安装编译时间长,安装步骤复杂容易出错: ②使用官方编译好的二进制文件安装,优点是安装速度快,安装步骤简单,缺点是安装包很大,300M左右(5.7版本的是600M左右), 对于第二种方法,我搞了一天,无果,到某个环节实在是无法走通,老大那边也不让搞了,隔了几天老大又吩咐我在生产服务器上安装mysql,这次我就按照第一种方法源码安装方式 下载源码安装包 http://dev.my

centos6.5下源码安装mysql密码修改

Centos下源码安装mysql密码破解方法: 方法一:首先停止mysql服务,: /etc/init.d/mysqldstop 停止mysql ps -ef |grep mysql 查看mysql是否关闭 然后以跳过权限方式后台启动 /usr/local/mysql/bin/mysqld_safe--skip-grant-tables --user=mysql & /usr/local/mysql/bin/mysql进入mysql 或者执行mysql回车进入mysql,然后修改密码. 修改My

CentOS 6.4 源码安装MySQL 5.6

1.安装前准备工作 1.1 必备的包 gcc/g++ :MySQL 5.6开始,需要使用g++进行编译.cmake :MySQL 5.5开始,使用cmake进行工程管理,cmake需要2.8以上版本.bison :MySQL语法解析器需要使用bison进行编译.ncurses-devel :用于终端操作的开发包. 1.2 MySQL编译参数 CMAKE_BUILD_TYPE 编译的版本类型:RelWithDebInfo和Debug,不同之处是RelWithDebInfo会进行优化.CMAKE_I

CentOS7 下源码安装MySQL 8.0.11

CentOS7 下源码安装MySQL 8.0.11 系统环境:CentOS7, 内核:Linux 3.10.0-862.el7.x86_64 如果有旧版本的MySQL,先卸载,用下面命令来查询出系统有哪些相关的MySQL包. rpm -qa | grep mysql 如果上述命令查询出有相关的MySQL包,就卸载 rpm -e 包名 卸载MariaDB包 yum remove mariadb-libs.x86_64 从MySQL官网下载源码包,并将该文件拷贝到系统中. https://dev.m

Linux平台下源码安装mysql多实例数据库

Linux平台下源码安装mysql多实例数据库[[email protected] ~]# netstat -tlunp | grep 330tcp6 0 0 :::3306 :::* LISTEN 6191/mysqld [[email protected] ~]# ss -tlunp | grep 330tcp LISTEN 0 80 :::3306 :::* users:(("mysqld",pid=6191,fd=10)) [[email protected] ~]# syst

CentOS7下源码安装MySQL 8.x

会选择使用源码安装MySQL,想必对MySQL及其他的安装方式已经有了一定的了解,这里就不对周边信息进行过多赘述了,直接开始吧. 编译MySQL比较消耗内存,如果机器内存较小,可能会在编译期间出现内存不足的异常.若没有设置swap分区的可以设置swap分区来解决,否则只能扩容内存了: [[email protected] ~]# dd if=/dev/zero of=/swapfile bs=1k count=2048000 [[email protected] ~]# mkswap /swap

linux 源码安装mysql 5.5

今天在ubuntu和CentOS下,用源码反复安装了许多次mysql,趁还没忘记,赶紧记下来... 在ubuntu和CentOS下安装过程倒是没什么差别. 0.下载源码,传到服务器上 1.准备cmake和libncurse ubuntu 下用 apt-get install cmake 和apt-get install libncurse安装 CentOS下用yum -y install ncurses-devel 和yum -y install cmake安装.某些版本要用yum -y ins

源码安装mysql

创建mysql组:groupadd mysql 创建mysql用户并赋予这个mysq组中,不创建家目录,不允许用户登录.(因为刚刚创建的mysql是虚拟用户,所以不允许登录)useradd mysql -g mysql -M -s /bin/nologin 源码安装mysql 解压后进行编译安装:./configure \--prefix=/application/mysql5.1.72 \--with-unix-socket-path=/application/mysql5.1.72/tmp/