在docker中安裝mysql詳解
在docker中安裝mysql
ubuntu官方鏡像是精簡的ubuntu系統(tǒng),很多軟件和庫沒有安裝,所以直接安裝mysql的話依賴較多,建議直接從源碼編譯安裝mysql
通過命令行安裝
先啟動(dòng)一個(gè)容器,建議可以創(chuàng)建一個(gè)包含常用工具的便于自己使用的基本鏡像,比如:包含vim、net-tools、添加阿里云鏡像
1.安裝編譯環(huán)境
需要gcc、cmake等環(huán)經(jīng),因?yàn)槭褂胾buntu的官方源較慢,所以要添加阿里云的源,但是注意,不要覆蓋原來ubuntu的源,將阿里云的源放在/etc/apt/sources.list.d/aliyun.list,因?yàn)榘惭b下面這些工具的時(shí)候,如果使用阿里云的源有些包會找不到,導(dǎo)致依賴不滿足不能安裝
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.編譯安裝
配置構(gòu)建
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 # 參數(shù)說明,下面這些參數(shù)都可以在mysql安裝之后配置 CMAKE_INSTALL_PREFIX=/usr/local/mysql:mysql安裝路徑 MYSQL_DATADIR=/usr/local/mysql/data:mysql數(shù)據(jù)文件路徑 SYSCONFDIR=/etc:mysql配置文件路徑 DEFAULT_CHARSET=utf8:默認(rèn)字符集utf8 DEFAULT_COLLETION=utf8_bin:默認(rèn)的字符校驗(yàn)方式,比較二進(jìn)制(區(qū)分大小寫) DENABLED_LOCAL_INFILE=1:允許從本地導(dǎo)入數(shù)據(jù) MYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock:mysql網(wǎng)絡(luò)socket文件位置 MYSQL_TCP_PORT=3306:tcp端口
編譯安裝
make make install
1.配置
# 添加組和系統(tǒng)用戶 groupadd mysql useradd -g mysql mysql # 修改文件權(quán)限 chown -R mysql:mysql /usr/local/mysql # 創(chuàng)建配置文件,以編譯配置生成的配置文件模板添加自己的配置項(xiàng) 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 # 配置環(huán)境變量 echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile # 初始化數(shù)據(jù)庫 /usr/local/mysql/mysql_install_db --user=mysql # 啟動(dòng)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目錄下執(zhí)行,因?yàn)槔锩鏁褂孟鄬β窂秸{(diào)用其他腳本
WORKDIR /usr/local/mysql
RUN ./scripts/mysql_install_db --user=mysql --collation-server=utf8_general_ci
EXPOSE 3036
CMD
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL容器中docker-entrypoint-initdb.d目錄的使用
這篇文章主要介紹了MySQL容器中docker-entrypoint-initdb.d目錄的使用方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
docker如何查看容器啟動(dòng)命令(已運(yùn)行的容器)
Docker是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的Linux機(jī)器上,下面這篇文章主要給大家介紹了關(guān)于docker如何查看容器啟動(dòng)命令(已運(yùn)行的容器)的相關(guān)資料,需要的朋友可以參考下2023-02-02
使用docker部署django技術(shù)棧項(xiàng)目的方法步驟
這篇文章主要介紹了使用docker部署django技術(shù)棧項(xiàng)目的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
Docker中iptables規(guī)則在iptables重啟后丟失的完整過程
這篇文章主要給大家介紹了關(guān)于Docker中iptables規(guī)則在iptables重啟后丟失的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Docker具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
三分鐘完成 ubuntu16.04初始化,Java,maven,docker環(huán)境的部署問題
這篇文章主要介紹了三分鐘完成 ubuntu16.04初始化,Java,maven,docker環(huán)境的部署問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2020-11-11
Linux Docker運(yùn)行springboot項(xiàng)目的步驟詳解
這篇文章主要介紹了Linux Docker運(yùn)行springboot項(xiàng)目的步驟詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
Docker容器下運(yùn)行Nginx并實(shí)現(xiàn)反向代理
這篇文章介紹了Docker容器下運(yùn)行Nginx并實(shí)現(xiàn)反向代理的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-03-03

