日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 安装 运维_MySQL自动化运维之安装篇

發布時間:2023/12/19 数据库 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 安装 运维_MySQL自动化运维之安装篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MySQL安裝一般使用RPM或者源碼安裝的方式。

RPM安裝的優點是快速,方便.缺點是不能自定義安裝目錄.如果需要調整數據文件和日志文件的存放位置,還需要進行一些手動調整?源碼安裝的優點是可以自定義安裝目錄,缺點是編譯時間長,過程復雜

其實還有一種方式,定制RPM包.

它相當于用源碼安裝的方式定制了一個RPM包.一次打包,可以多次使用

它可以定制路徑,安裝時自動創建帳號,自動配置服務,環境變量等,并且安裝過程快速,簡單。

在大規模部署的場景下,優點十分突出.

缺點是制作RPM包,需要自己編寫Red Hat定義的spec文件.而spec文件編寫的學習曲線比較陡.

需求如下

1.創建用戶mysql

2.數據庫軟件安裝在/home/mysql/mysql-5.6.14目錄

3.數據文件存放在/data目錄下

4.配置服務,自動啟動

首先,下載rpmbuild

yum install rpm-build -y

它是Red Hat用于打RPM包的工具.

安裝之后重啟計算機,可以看到/root/rpmbuild目錄下有如下文件夾

這個工具打包的過程大致如下,

編寫spec指定打包的過程

將源碼壓縮包放在SOURCES目錄下,

將源碼解壓縮到BUILD目錄,執行make命令

將make install 的結果放在BUILDROOT目錄下,

最后將BUILDROOT下編譯好的二進制文件制作成RPM包。

并且可以指定在RPM安裝之前,安裝之后,卸載等過程執行的命令

首先,下載源碼包

http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.14.tar.gz

并將其復制到指定的目錄

/root/rpmbuild/SOURCES/mysql-5.6.14.tar.gz

安裝編譯MySQL需要的依賴包

yum -y install make gcc-c++ cmake bison-devel? ncurses-devel

編寫spec腳本

vim mysql.spec

Name:? ? ? MySQL

Version:? ? 5.6.14

Release:? ? 1%{?dist}

Summary:? ? MySQL-5.6.14 RPM

Group:? ? ? applications/database

License:? ? GPL

URL:? ? ? ? http://www.mysql.com

Source0:? ? mysql-5.6.14.tar.gz

BuildRoot:? ? ? %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)

BuildRequires:? cmake

AutoReqProv: no

%description

MySQL 5.6.14

%define MYSQL_USER mysql

%define MYSQL_GROUP mysql

%prep

%setup -n mysql-%{version}

%build

cmake \

-DCMAKE_INSTALL_PREFIX=/home/mysql/mysql-5.6.14 \

-DMYSQL_DATADIR=/data \

-DSYSCONFDIR=/etc \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_MEMORY_STORAGE_ENGINE=1 \

-DWITH_READLINE=1 \

-DMYSQL_UNIX_ADDR=/data/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 -j `cat /proc/cpuinfo | grep processor| wc -l`

%install

rm -rf %{buildroot}

make install DESTDIR=%{buildroot}

%pre

mkdir -p /data

useradd -m -s /bin/bash mysql

chown -R mysql:mysql /data

%post

/home/mysql/mysql-5.6.14/scripts/mysql_install_db --basedir=/home/mysql/mysql-5.6.14 --datadir=/data --user=mysql

cp /home/mysql/mysql-5.6.14/support-files/mysql.server /etc/init.d/mysql

chkconfig mysql on

service mysql start

echo "export PATH=.:$PATH:/home/mysql/mysql-5.6.14/bin;" >> /home/mysql/.bashrc

source /home/mysql/.bashrc

%preun

service mysql stop

chkconfig --del mysql

userdel mysql

rm -rf /home/mysql

rm -rf /data

rm -rf /etc/init.d/mysql

%clean

rm -rf %{buildroot}

%files

%defattr(-, %{MYSQL_USER}, %{MYSQL_GROUP})

%attr(755, %{MYSQL_USER}, %{MYSQL_GROUP}) /home/mysql/mysql-5.6.14/*

%changelog

其中

Source0:? ? mysql-5.6.14.tar.gz

這個壓縮文件需要放在指定的目錄中(/root/rpmbuild/SOURCES)

自動解壓的時候,會在這個指定目錄中找這個文件

AutoReqProv: no

這個參數必須設置,否則在安裝的時候,會顯示有依賴包的缺失.實際上是不需要的。

%setup -n mysql-%{version}

解壓源碼包之后,會進入目錄執行build,它默認是根據%{name}和%{version}拼接的目錄.

以MySQL為例,在spec中寫的name為MySQL,version為5.6.14

那么它會進入MySQL-5.6.14的目錄,

但是源碼包解壓之后的目錄是mysql-5.6.14(小寫)

所以在setup這個段使用-n參數,匹配這個目錄.(就是說默認的設置不靈,需要自己匹配目錄)

make -j `cat /proc/cpuinfo | grep processor| wc -l`

查看計算機有幾個核,然后多線程編譯

這個腳本的過程是這樣的

首先解壓源碼包

%prep

%setup -n mysql-%{version}

然后執行%build的過程,make編譯

然后執行%install

將編譯之后的代碼真實的安裝一遍,

它安裝的目錄是/root/rpmbuild/BUILDROOT/MySQL-5.6.14-1.el6.i386/home/mysql/mysql-5.6.14/

因為我們指定的安裝目錄是/home/mysql/mysql-5.6.14/,它相當于在一個沙盒中安裝了一遍.

它會將沙盒中安裝之后的文件打成RPM包

%files就是指定哪些沙盒中的文件打入RPM包

%files指定的文件是相對路徑,絕對路徑應該是%{buildroot}/home/mysql/mysql-5.6.14

默認的%{buildroot}就是/root/rpmbuild/BUILDROOT/MySQL-5.6.14-1.el6.i386/

這個%{buildroot}是由spec文件的BuildRoot設置的

BuildRoot:? ? ? %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)

%pre是RPM安裝之前執行的命令

這里主要是創建數據文件的目錄和帳號

mkdir -p /data

useradd -m -s /bin/bash mysql

chown -R mysql:mysql /data

%post是RPM安裝之后執行的命令

這里主要是創建數據庫實例,配置服務,配置環境變量

/home/mysql/mysql-5.6.14/scripts/mysql_install_db --basedir=/home/mysql/mysql-5.6.14 --datadir=/data --user=mysql

cp /home/mysql/mysql-5.6.14/support-files/mysql.server /etc/init.d/mysql

chkconfig mysql on

service mysql start

echo "export PATH=.:$PATH:/home/mysql/mysql-5.6.14/bin;" >> /home/mysql/.bashrc

source /home/mysql/.bashrc

%preun是卸載RPM包執行的命令,主要用于清理

service mysql stop

chkconfig --del mysql

userdel mysql

rm -rf /home/mysql

rm -rf /data

rm -rf /etc/init.d/mysql

其實編寫spec文件本質上是在寫一個回調函數,rpmbuild根據spec的回調函數,生成一個Shell腳本,打包的過程就是執行Shell腳本的過程。

定制RPM安裝包可以滿足大規模自動化部署的場景

因為它可以

定制配置文件(將配置文件放在ftp或者http上,在%post段下載這個配置文件放在/etc下)

定制安裝目錄和數據文件,日志文件的目錄(生產系統不同的掛載點,底層可能是不同的物理設備)

自動創建帳號,配置服務和環境變量

這些特性在規模很小時微不足道,

比如給研發和測試安裝,人家還嫌你有毛病.明明一個rpm能搞定,你還整這么復雜,不是臭顯擺嗎?

生產環境裝一個庫運行好幾年,再裝的時候,這個RPM估計都忘了放哪里了...

但是一旦規模上來了,一天需要裝個10臺8臺的,這個自動化安裝的優點就顯現出來了

--------------------------------------分割線 --------------------------------------

Ubuntu 14.04 LTS 安裝 LNMP Nginx\PHP5 (PHP-FPM)\MySQL http://www.linuxidc.com/Linux/2014-05/102351.htm

--------------------------------------分割線 --------------------------------------

總結

以上是生活随笔為你收集整理的mysql 安装 运维_MySQL自动化运维之安装篇的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。