`

MySQL5.7.22 编译安装Dockfile

阅读更多

 编写不易,转载请注明 (http://shihlei.iteye.com/blog/2423672)

 

 

一 Java1.8 Dockerfile 构建(可以省略)

 

(1)目录结构

$ ls
Dockerfile                 jdk-8u161-linux-x64.tar.gz

 

(2)Dockerfile

############################################################  
# Dockerfile to build Java Installed Containers  
# Based on Centos Latest  
# docker build -t centos:java .  
############################################################  
  
FROM centos:latest  
  
LABEL author="puppet" \  
      description="Dockerfile to build Java Installed Containers"  
  
# ADD JDK  
ADD jdk-8u161-linux-x64.tar.gz /usr/local/  
  
RUN /bin/bash -c 'cd /usr/local; ln -s jdk1.8.0_161 java'  
  
ENV  JAVA_HOME=/usr/local/java  
ENV  JRE_HOME=$JAVA_HOME/jre \  
     PATH=$JAVA_HOME/bin:$PATH \  
     CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOEM/lib/tools.jar  

 

(3)构建: docker build -t centos:java .

 

二 mysql 5.7.22 Dockerfile

 

(1)目录结构

$ ls
Dockerfile                my.cnf                    mysql-boost-5.7.22.tar.gz

 

(2)my.cnf

[mysqld]
datadir=/data/mysql/mysql_data
socket=/data/mysql/mysql_data/mysql.sock
user=mysql
 
symbolic-links=0
 
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
key_buffer_size = 8144M
table_cache_size = 1024M
read_buffer_size = 128M
sort_buffer_size = 32M
query_cache_size = 100M
thread_cache_size = 16
thread_concurrency = 32
max_heap_table_size = 400M
tmp_table_size = 400M
max_connections = 500
# The end

  

(2)Dockerfile

############################################################
# Dockerfile to build MySQL 5.7.22 on CentOS7
# Based on Centos Latest
# docker build -t puppet:mysql . 
############################################################

FROM centos:java

LABEL author="puppet" \
      description="Dockerfile to build MySQL 5.7.22 on Centos 7"

# add MySQL, download source code
ADD mysql-boost-5.7.22.tar.gz /usr/local/mysql

# add group , user;
RUN /bin/bash -c 'groupadd mysql; useradd -r -g mysql -s /bin/false mysql'

# workdir 
WORKDIR /usr/local/mysql/mysql-5.7.22

# mkdir dir;
RUN /bin/bash -c 'mkdir -p /data/mysql/mysql_data ; chown -R mysql:mysql /data/mysql'

# install dependency;
RUN /bin/bash -c 'yum -y install bison cmake make gcc gcc-c++ ncurses-devel'

# make
RUN /bin/bash -c 'cmake   -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/mysql-5.7.22        -DMYSQL_DATADIR=/data/mysql/mysql_data         -DMYSQL_UNIX_ADDR=/usr/local/mysql/5.7.22/mysql.sock           -DSYSCONFDIR=/etc           -DWITH_MYISAM_STORAGE_ENGINE=1          -DWITH_ARCHIVE_STORAGE_ENGINE=1           -DWITH_BLACKHOLE_STORAGE_ENGINE=1           -DWITH_INNOBASE_STORAGE_ENGINE=1          -DWITH_MEMORY_STORAGE_ENGINE=1          -DWITH_READLINE=1           -DMYSQL_TCP_PORT=3306           -DENABLED_LOCAL_INFILE=1          -DWITH_PARTITION_STORAGE_ENGINE=1           -DEXTRA_CHARSETS=all          -DDEFAULT_CHARSET=utf8          -DDEFAULT_COLLATION=utf8_general_ci  -DWITH_BOOST=boost/boost_1_59_0/ ; make ; make install'

# set start 
RUN /bin/bash -c 'cp ./support-files/mysql.server /etc/init.d/mysqld; chown -R mysql:mysql /usr/local/mysql/; chmod 755 /etc/init.d/mysqld; chkconfig --add mysqld; chkconfig  mysqld on'

# add conf
ADD my.cnf /etc/

# port 3306
EXPOSE 3306:3306

 

(3)构建: docker build -t centos:java .

 

三 使用

 

(1)启动容器

docker run -tid --net shadownet --ip 6.6.6.10 --hostname mysql --name mysql -p 3306:3306 -v /Users/mysql/data_share:/data/mysql_share --volumes-from datashare puppet:mysql /bin/bash

docker exec -ti mysql /bin/bash

 

(2)初始化数据库,连接

 

cd /usr/local/mysql/mysql-5.7.22 

./bin/mysqld  --initialize --user=mysql --basedir=/usr/local/mysql/mysql-5.7.22  --datadir=/data/mysql/mysql_data

#安装完会显示临时密码:2018-05-28T09:17:14.020796Z 1 [Note] A temporary password is generated for root@localhost: djyN+y,so2Ka
# 启动数据库
/etc/init.d/mysqld start 
./bin/mysql -u root -p -h localhost -S /data/mysql/mysql_data/mysql.sock

 

(3)修改密码

ALTER USER 'root'@'localhost' identified by '需要设置安全等级很高的密码,否则报错'

alter user 'root'@'localhost' identified by '123456';

 

(4)授权

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';

 

 

 

 

 

分享到:
评论

相关推荐

    centos7安装mysql5.7.22数据库文档

    该文档是关于在centos7安装mysql5.7.22数据库的详细步骤,亲测没有问题

    MySQL 5.7.22 离线安装文件及方法.rar

    MySQL 5.7.22 是一个非常流行的开源关系型数据库管理系统,它的离线安装文件对于那些无法连接到互联网或需要在隔离环境中的服务器上安装MySQL的用户来说尤其有用。这个压缩包“MySQL 5.7.22 离线安装文件及方法.rar...

    mysql-5.7.22-el7-x86_64.tar.gz mysql-5.7.22安装包下载

    本篇文章将详细介绍如何在Linux系统(特别是EL7,即CentOS 7或Red Hat Enterprise Linux 7)上安装和配置MySQL 5.7.22。 首先,我们需要下载MySQL的压缩包文件`mysql-5.7.22-el7-x86_64.tar.gz`。这个文件包含了...

    mysql 5.7.22(64位)

    MySQL 5.7.22 是 MySQL 数据库管理系统的一个重要版本,专为 64 位 Windows 操作系统设计。这个版本带来了许多增强和优化,旨在提供更高效、更安全的数据库服务。以下是对该版本的一些关键知识点的详细说明: 1. **...

    Linux复习资料——CentOS7下安装MySQL5.7.22安装包

    本教程将详细阐述如何在 CentOS 7 操作系统中安装 MySQL 5.7.22 数据库服务,这对于那些需要搭建数据库环境或者深入理解Linux系统管理的IT专业人士来说是必备的知识。 首先,我们来看“mysql-5.7.22-1.el7.x86_64....

    07_Mysql 5.7.22_mha_ver1.0.docx

    2. 将MySQL 5.7.22和Boost库的源码包上传至`/opt`目录,解压缩并编译安装。在编译时需指定安装路径、数据目录、端口、套接字路径等参数,确保支持多种存储引擎,如MyISAM、InnoDB和Memory。 3. 修改配置文件`/etc/my...

    mysql5.7.22纯净免安装精简版

    MYSQL版本 5.7.22 x64 WIN10说明 1、安装服务 CMD必须是管理员模式,cd进入到mysqld.exe所在的目录,运行安装服务命令。【注意my.ini位置需要填写正确】 mysqld.exe --install App_MySQL57 --defaults-file="D:\...

    centos6安装mysql5.7.22

    centos6安装mysql5.7.22,步骤很详细。可以直接按照步骤来进行安装。

    mysql5.7.22社区免费版

    mysql社区版,包含多个rpm包,试用于rpm安装 mysql-community-client-5.7.22-1.el7.x86_64.rpm mysql-community-devel-5.7.22-1.el7.x86_64.rpm mysql-community-libs-5.7.22-1.el7.x86_64.rpm mysql-community-...

    Mysql 5.7.22 包含boot1.59

    在安装和配置 MySQL 5.7.22 时,用户需要了解如何正确编译 Boost 和 MySQL 源代码,设置合适的编译选项,以及配置文件参数。在使用过程中,掌握 SQL 语句优化、索引设计、查询计划分析等技巧也是必不可少的。同时,...

    mysql5.7.22的libmysql.dll和libmysql.lib

    **libmysql.lib** 是一个静态库文件,它是用于编译链接到MySQL客户端库的C/C++源代码的。当你在开发一个需要连接到MySQL的32位应用程序时,会将libmysql.lib链接到你的项目中。编译器会使用这个库文件中的符号信息来...

    Mac 下 MySQL5.7.22的安装过程

    在Mac操作系统上安装MySQL 5.7.22是一个相对简单的过程,但涉及多个步骤,包括使用安装包、配置服务以及安全地修改root用户的密码。以下是详细的安装过程: 1. **下载与安装MySQL**: - 由于网络下载速度可能较慢...

    MySQL 5.7.22 二进制包安装及免安装版Windows配置方法

    本文将详细介绍如何在Windows操作系统上通过二进制包安装MySQL 5.7.22,以及如何配置免安装版。 首先,我们来理解二进制包安装的概念。二进制包是指预先编译好的可执行文件和相关库,用户可以直接在本地系统上安装...

    mysql5.7.22安装包

    本文将详细介绍 MySQL 5.7.22 的安装过程以及相关知识点。 首先,MySQL 是一个开源的关系型数据库管理系统(RDBMS),广泛应用于网页服务器、应用程序开发和大数据处理等领域。5.7 版本是 MySQL 的一个重要里程碑,...

    mysql5.7.22双主一从配置

    #### 三、MySQL 5.7.22 安装步骤 接下来是详细的安装步骤,这些步骤在三台服务器上都需要执行。 ##### 4.2、MySQL 5.7.22 安装 - **4.2.1 关闭防火墙与SELinux,安装依赖包** - **关闭防火墙与SELinux**: ```...

    CentOS6.5安装MySQL5.7.22方法

    ### CentOS 6.5 安装 MySQL 5.7.22 方法详解 #### 一、准备工作 在开始安装 MySQL 5.7.22 之前,请确保您的 CentOS 6.5 系统已更新至最新状态,并且已经安装了必要的依赖包。这一步对于后续的安装过程非常重要。 ...

    win10 下安装mysql服务器社区版本mysql 5.7.22 winx64的图文教程

    在Windows 10操作系统上安装MySQL 5.7.22社区版的步骤涉及多个环节,包括下载、解压、配置环境变量、安装服务、初始化数据库、设置密码以及启动服务。下面将详细解释这些步骤: 1. **下载MySQL**: 首先,你需要...

    mysql5.7.22解压版

    在这个解压版中,你将找到所有必要的文件来安装和运行 MySQL 5.7.22。以下是一些关于 MySQL 5.7.22 的关键知识点: 1. **InnoDB 存储引擎**:MySQL 5.7 对 InnoDB 存储引擎进行了优化,提高了事务处理性能和并发...

    mysql5.7.22自带boost源代码包

    6. **安装**:使用`make install`命令将编译好的MySQL安装到系统中。 7. **初始化和配置**:创建数据目录,初始化数据库,并根据需要配置MySQL的系统变量和配置文件。 8. **启动服务**:最后,启动MySQL服务,可以...

    mysql-5.7.22-winx64.zip

    ### MySQL 5.7.22 Windows x64版本知识点详解 #### 一、MySQL 5.7.22版本概述 MySQL 5.7,也被称为MySQL 5.7.x系列,是MySQL数据库管理系统的一个重要版本。它包含了多项新功能、性能改进以及对旧版本中存在的问题...

Global site tag (gtag.js) - Google Analytics