设为首页 收藏本站
查看: 1042|回复: 0

shell脚本-自动安装mysql源码包

[复制链接]

尚未签到

发表于 2018-8-17 08:01:48 | 显示全部楼层 |阅读模式
  学习linux有段时间了,一直没有写技术博客的习惯,但还是尽量让自己多写写自己学到的一些关于linux方面的东西吧,最近在双星葛老师的指导下开始学习mysql数据库,自己整理笔记,并用shell脚本实现mysql源码包(mysql-5.6.11.tar.gz)的  全自动安装,代码写的一般,但是能满足需求,如安装有什么问题可以互相交流一些,下面进入正题:
  首先整理一下自己手动安装时的一些步骤:
  安装和配置mysql的源码包
  软件包版本:mysql-5.6.11.tar.gz
  1.安装源码包所需要的前提软件包
  需要的软件包:cmake make gcc gcc-c++ ncurses-devel mysql
yum install cmake make gcc gcc-c++ ncurses-devel mysql -y  2.解压源码包并进行编译安装
  
[root@localhost ~]# tar xf mysql-5.6.11.tar.gz  
[root@localhost ~]# cd mysql-5.6.11
  
[root@localhost mysql-5.6.11]# cmake \
  
-DCMAKE_INSTALL_PREFIX:PATH=/usr/local/mysql12 \
  
-DMYSQL_DATADIR:PATH=/database \
  
-DWITH_DEBUG:BOOL=on \
  
-DWITH_EXTRA_CHARSETS:STRING=all \
  
-DWITH_INNOBASE_STORAGE_ENGINE:BOOL=on \
  
-DWITH_PARTITION_STORAGE_ENGINE:BOOL=on
  
[root@localhost mysql-5.6.11]# make ; make install
  cmake make就会调用gcc、gcc-c++编译器来编译源代码文件
  make install 安装到/usr/local/mysql12
  3.创建并修改配置文件
  进入到安装目录,创建配置文件my.cnf
[root@localhost mysql-5.6.11]# cd /usr/local/mysql12  
[root@localhost mysql12]# mkdir etc
  
[root@localhost mysql12]# vim etc/my.cnf
  
[mysqld]
  
basedir=/usr/local/mysql12
  
datadir=/database
  
socket=/var/run/mysqld/mysql12.sock
  
pid-file=/var/run/mysqld/mysql12.pid
  
port=3308
  
user=mysql
  
[mysqld_safe]
  
log-error=/var/log/mysqld/mysql12-error.log
  4.创建mysql组和用户,并保证用户uid27 gid27
  查看本机是否有mysql用户
[root@localhost mysql12]#cat /etc/passwd |grep mysql  
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
  没有的话则进行创建,命令如下
[root@localhost mysql12]# groupadd mysql -g 27  
[root@localhost mysql12]# useradd mysql -u 27 -c "Mysql Server" -d /var/lib/mysql  -s /sbin/nologin -g mysql
  5.创建所需文件夹并修改所有者为mysql
[root@localhost mysql12]# mkdir /database  
[root@localhost mysql12]# mkdir /var/run/mysqld/
  
[root@localhost mysql12]# mkdir /var/log/mysqld/
  
[root@localhost mysql12]# chown mysql:mysql /database /var/run/mysqld/ /var/log/mysqld/ /usr/local/mysql12 -R
  6.初始化数据
  进入源码包解压後的文件夹下的script目录执行mysql_install_db脚本进行初始化
[root@localhost mysql12]# cd ~/mysql-5.6.11/scripts/  
[root@localhost scripts]# chmod +x mysql_install_db
  
[root@localhost scripts]# ./mysql_install_db --datadir=/database/ --basedir=/usr/local/mysql12/ --user=mysql
  7.定义启动脚本的位置并修改脚本
  复制解压目录下的support-files目录中的mysql.server到/etc/rc.d/init.d/目录下并将其重命名为mysql56,并进行如下修改作为启动脚本。
[root@localhost scripts]# cd ~/mysql-5.6.11/support-files/  
[root@localhost support-files]# chmod +x mysql.server
  
[root@localhost support-files]# cp mysql.server /etc/rc.d/init.d/mysql12
  
[root@localhost support-files]# vim  /etc/rc.d/init.d/mysql12
  
修改 conf=/etc/my.cnf 为conf=/usr/local/mysql12/etc/my.cnf
  8.启动mysql
  查看系统中是否有mysql的进程
[root@localhost support-files]# netstat -ntaup | grep "mysql"  
[root@localhost support-files]# ps aux | grep "mysql"
  如果有则将其进程结束,命令如下
[root@localhost support-files]# pkill -9 mysql  启动刚安装好的mysql
[root@localhost support-files]# service mysql12 start  
[root@localhost support-files]# mysql -S/var/run/mysqld/mysql12.sock
  出现如下提示则说明mysql源码包安装成功并可以使用
  Welcome to the MySQL monitor.  Commands end with ; or \g.

  Your MySQL connection>  Server version: 5.6.11-debug Source distribution
  Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
  Oracle is a registered trademark of Oracle Corporation and/or its
  affiliates. Other names may be trademarks of their respective
  owners.
  Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  mysql>
  以下为shell脚本安装的内容:
#!/bin/bash  
#########################################
  
#   mysql 源码包安装脚本       #
  
#           --by sweet  #
  
#########################################
  
#每次安装只需修改mysql的值即可
  
mysql=mysql12
  
setup_path=/root
  
install_path=/usr/local/$mysql
  
#结束所有mysql进程
  
pkill -9 mysql
  
#1.安装所需要的前提软件包
  
yum install cmake make gcc gcc-c++ ncurses-devel -y &>/dev/null
  
#2.解压源码包并进行编译安装
  
if [ -d $setup_path/mysql-5.6.11 ];then
  
rm -rf $setup_path/mysql-5.6.11
  
fi
  

  
cd $setup_path
  
tar xf mysql-5.6.11.tar.gz
  
cd  mysql-5.6.11
  
cmake  -DCMAKE_INSTALL_PREFIX:PATH=$install_path  -DMYSQL_DATADIR:PATH=/database -DWITH_DEBUG:BOOL=on -DWITH_EXTRA_CHARSETS:STRING=all  -DWITH_INNOBASE_STORAGE_ENGINE:BOOL=on  -DWITH_PARTITION_STORAGE_ENGINE:BOOL=on &>/dev/null
  
make ; make install
  
#3.创建并修改配置文件
  
mkdir $install_path/etc -p
  
cat $install_path/etc/my.cnf
  
[mysqld]
  
basedir=/usr/local/$mysql
  
datadir=/database
  
socket=/var/run/mysqld/$mysql.sock
  
pid-file=/var/run/mysqld/$mysql.pid
  
#安装不同版本可修改port号
  
port=3308
  
user=mysql
  
[mysqld_safe]
  
log-error=/var/log/mysqld/$mysql-error.log
  
EOF
  
#4.创建mysql组和用户,并保证用户uid27 gid27
  
user=$(cat /etc/passwd |grep "mysql")
  
if [[ -z $user ]];then
  
groupadd mysql -g 27
  
useradd mysql -u 27 -c "Mysql Server" -d /var/lib/mysql  -s /sbin/nologin -g mysql
  
fi
  
#5.创建所需文件夹并修改所有者为mysql
  
mkdir -p /database
  
mkdir -p /var/run/mysqld/
  
mkdir -p /var/log/mysqld/
  
chown mysql:mysql /database /var/run/mysqld/ /var/log/mysqld/ /usr/local/$mysql -R
  
#6.初始化数据
  
cd $setup_path/mysql-5.6.11/scripts/
  
chmod +x mysql_install_db
  
./mysql_install_db --datadir=/database/ --basedir=/usr/local/$mysql/ --user=mysql
  
#7.定义启动脚本的位置并修改脚本
  
cd $setup_path/mysql-5.6.11/support-files/
  
chmod +x mysql.server
  
cp mysql.server /etc/rc.d/init.d/$mysql
  
sed -i "s/conf=/&\/usr\/local\/$mysql/" /etc/rc.d/init.d/$mysql
  
#8.启动mysql
  
service $mysql start
  
mysql -S/var/run/mysqld/$mysql.sock
  如需要在一台主机重复安装,只需要将脚本中的mysql变量进行修改即可。
  附件为shell脚本



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-552822-1-1.html 上篇帖子: shell总结(带例子) 下篇帖子: shell多线程执行ping
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表