热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

在docker中安装mysql详解

在docker中安装mysql ubuntu官方镜像是精简的ubuntu系统,很多软件和库没有安装,所以直接安装mysql的话依赖较多,建

在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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


推荐阅读
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 在Kubernetes上部署JupyterHub的步骤和实验依赖
    本文介绍了在Kubernetes上部署JupyterHub的步骤和实验所需的依赖,包括安装Docker和K8s,使用kubeadm进行安装,以及更新下载的镜像等。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 本文介绍了在Docker容器技术中限制容器对CPU的使用的方法,包括使用-c参数设置容器的内存限额,以及通过设置工作线程数量来充分利用CPU资源。同时,还介绍了容器权重分配的情况,以及如何通过top命令查看容器在CPU资源紧张情况下的使用情况。 ... [详细]
  • 开发笔记:Docker 上安装启动 MySQL
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Docker上安装启动MySQL相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 如何使用PLEX播放组播、抓取信号源以及设置路由器
    本文介绍了如何使用PLEX播放组播、抓取信号源以及设置路由器。通过使用xTeve软件和M3U源,用户可以在PLEX上实现直播功能,并且可以自动匹配EPG信息和定时录制节目。同时,本文还提供了从华为itv盒子提取组播地址的方法以及如何在ASUS固件路由器上设置IPTV。在使用PLEX之前,建议先使用VLC测试是否可以正常播放UDPXY转发的iptv流。最后,本文还介绍了docker版xTeve的设置方法。 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • Linuxchmod目录权限命令图文详解在Linux文件系统模型中,每个文件都有一组9个权限位用来控制谁能够读写和执行该文件的内容。对于目录来说,执行位的作用是控制能否进入或者通过 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
author-avatar
mobiledu2502852923
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有