zoukankan      html  css  js  c++  java
  • docker

    在docker中安装mysql

    ubuntu官方镜像是精简的ubuntu系统,很多软件和库没有安装,所以直接安装mysql的话依赖较多,建议直接从源码编译安装mysql

    通过命令行安装

    先启动一个容器,建议可以创建一个包含常用工具的便于自己使用的基本镜像,比如:包含vim、net-tools、添加阿里云镜像

    1. 安装编译环境
      需要gcc、cmake等环经,因为使用ubuntu的官方源较慢,所以要添加阿里云的源,但是注意,不要覆盖原来ubuntu的源,将阿里云的源放在/etc/apt/sources.list.d/aliyun.list,因为安装下面这些工具的时候,如果使用阿里云的源有些包会找不到,导致依赖不满足不能安装
    apt-get update && apt-get install make cmake gcc g++ bison libncurses5-dev build-essential
    
    1. mysql 源码包下载
      下载链接: https://dev.mysql.com/downloads/mysql/ , 选择合适的版本下载,这里选择 mysql-5.6.34.tar.gz
      tar -xvf mysql-5.6.34.tar.gz
      cd mysql-5.6.34

    2. 编译安装
      配置构建

    cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLETION=utf8_bin DENABLED_LOCAL_INFILE=1 -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 
    
    # 参数说明,下面这些参数都可以在mysql安装之后配置
    
    CMAKE_INSTALL_PREFIX=/usr/local/mysql:mysql安装路径
    MYSQL_DATADIR=/usr/local/mysql/data:mysql数据文件路径
    SYSCONFDIR=/etc:mysql配置文件路径
    DEFAULT_CHARSET=utf8:默认字符集utf8
    DEFAULT_COLLETION=utf8_bin:默认的字符校验方式,比较二进制(区分大小写)
    DENABLED_LOCAL_INFILE=1:允许从本地导入数据
    MYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock:mysql网络socket文件位置
    MYSQL_TCP_PORT=3306:tcp端口
    

    编译安装

    make
    make install
    
    1. 配置
    # 添加组和系统用户
    groupadd mysql
    useradd -g mysql mysql
    
    # 修改文件权限
    chown -R mysql:mysql /usr/local/mysql
    
    # 创建配置文件,以编译配置生成的配置文件模板添加自己的配置项
    cp /usr/local/mysql/upport-files/my-default.cnf /etc/my.cnf
    chown mysql:mysql /etc/my.cnf
    
    # 例如参考配置
    [client]
    port = 3306
    socket = /usr/local/mysql/data/mysql.sock
    [mysqld]
    port = 3306
    socket = /usr/local/mysql/data/mysql.sock
    basedir = /usr/local/mysql
    datadir  = /usr/local/mysql/data
    
    # 配置环境变量
    echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
    
    # 初始化数据库
    /usr/local/mysql/mysql_install_db --user=mysql
    
    # 启动mysql
    /usr/local/mysql/bin/mysqld_safe &
    

    通过Dockerfile安装

    FROM ubuntu:latest
    
    ADD sources.list /root/sources.list
    RUN cp /root/sources.list /etc/apt/sources.list.d/aliyun.list
    RUN apt-get update && apt-get install -y make cmake gcc g++ bison libncurses5-dev build-essential
    
    ADD mysql-5.6.34 /root/mysql
    WORKDIR /root/mysql
    RUN mkdir build
    WORKDIR build
    RUN cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLETION=utf8_bin -DENABLED_LOCAL_INFILE=1 -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DMYSQL_TCP_PORT=3306
    RUN make
    RUN make install
    
    RUN groupadd mysql
    RUN useradd -g mysql mysql
    RUN chown -R mysql:mysql /usr/local/mysql
    
    RUN echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
    # RUN source /etc/profile
    # 安装脚本必须在/usr/local/mysql目录下执行,因为里面会使用相对路径调用其他脚本
    WORKDIR /usr/local/mysql
    RUN ./scripts/mysql_install_db --user=mysql --collation-server=utf8_general_ci
    EXPOSE 3036
    
    CMD
    

    参考

  • 相关阅读:
    初窥Opencv
    24课时VC之思考>编辑控件
    24课时VC之思考>列表框与组合框
    递归归并排序 思想 JAVA实现
    插入排序 思想 JAVA实现
    AJAX发送json,SpringMVC 接收JSON,@RequestBody
    SpringBoot设置默认启动页的2种方式
    选择排序 思想 JAVA实现
    快速排序(一) 思想 JAVA实现
    spring security之logoutHandler中的CookieClearingLogoutHandler
  • 原文地址:https://www.cnblogs.com/sunshine-2015/p/6403331.html
Copyright © 2011-2022 走看看