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

[经验分享] Centos6.5上面用Shell脚本一键编译安装mysql5.5.47

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-1-4 09:02:58 | 显示全部楼层 |阅读模式
                      

操作系统及其mysql配置文件说明:
Linux系统:Centos6.5

cat /etc/centos_release     查看centos版本信息

[iyunv@Linux-node2 ~]# cat /etc/centos-release

CentOS release 6.5 (Final)

uname -r        #显示操作系统的发行版号

[iyunv@Linux-node2 ~]# uname -r

2.6.32-431.el6.x86_64

uname -a      #显示系统名、节点名称、操作系统的发行版号、操作系统版本、运行系统的机器 ID 号

Linux Linux-node2.com 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

mysql:mysql-5.5.47.tar.gz源码包

cmake:cmake-2.8.10.2.tar.gz

安装目录:/usr/local/mysql/
数据目录:/data/mysql/3306/data/
二进制日志:/data/msyql/3306/binlog/
relay日志:/data/mysql/3306/relaylog/
配置文件:/data/mysql/3306/my.cnf
mysql.sock文件:/data/mysql/3306/mysql.sock
下面是我转载并经过修改的一键安装mysql数据库的脚本,如有不对的地方请多多指教。


[iyunv@Linux-node2~]# cat mysql_install.sh

  #!/bin/bash

  #date:2016.1.02

#
#Mysql install directory and configuration files.

  MYSQL_DIR="/data/software"

DATA_DIR="/data/mysql/3306/data"

  BASE_DIR="/usr/local/mysql"

  mkdir -p $MYSQL_DIR     

  mkdir -p $DATA_DIR     

  mkdir -p $BASE_DIR  #创建mysql数据库的源码软件包存放路径、数据存放路径、安装路径目录

echo"please input mysql version:"
readVERSION
echo"Your mysql version is mysql-$VERSION.tar.gz"
if[ -e "$MYSQL_DIR/mysql-$VERSION.tar.gz"]
then
echo"Please waitting..."
sleep3

   #Install mysql package dependent.

yum -y installgcc gcc-c++ gcc-g77 autoconf automake openssl zlib* fiex** libxml* \
ncurses-devel libmcrypt* libtool-ltdl-devel* &&

   #Install cmake.

echo"The system will installe cmake,please waitting..."

   sleep3

tar-zxvf $MYSQL_DIR/cmake-2.8.10.2tar.gz -C $MYSQL_DIR &&
cd$MYSQL_DIR/cmake-2.8.10.2 &&
./configure\
--prefix=/usr/local/cmake&&
make&& makeinstall&&
#creating mysql account and group.
/usr/sbin/groupaddmysql &&
/usr/sbin/useradd-s /sbin/nologin-g mysql -M mysql &&
#Install mysql.
tar-zxvf $MYSQL_DIR/mysql-$VERSION.tar.gz -C $MYSQL_DIR
cd$MYSQL_DIR/mysql-$VERSION

   export"PATH=$PATH:/usr/local/cmake/bin"> /etc/profile&& source/etc/profile

   export"PATH=$PATH:/usr/local/mysql/bin"> /etc/profile&& source/etc/profile

cmake \
$MYSQL_DIR/mysql-$VERSION
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql\
-DYSQL_TCP_PORT=3306 \
-DMYSQL_DATADIR=$DATA_DIR \
-DMYSQL_UNIX_ADDR=/data/mysql/3306/mysql.sock \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_DEBUG=0
make&& makeinstall&&
mkdir-p `dirname$DATA_DIR`/binlog
mkdir-p `dirname$DATA_DIR`/relaylog
cp$MYSQL_DIR/mysql-$VERSION/support-files/my-small.cnf.sh `dirname$DATA_DIR`/my.cnf
cp$MYSQL_DIR/mysql-$VERSION/support-files/mysql.server.sh /etc/init.d/mysqld
chmod+x /etc/init.d/mysqld
sed-i 's/^basedir=/basedir=\/usr\/local\/mysql/'/etc/init.d/mysqld
sed-i 's/^datadir=/datadir=\/data\/mysql\/3306/'/etc/init.d/mysqld
sed-i 's/`@HOSTNAME@`/Linux-node2.com/'/etc/init.d/mysqld
sed -i 's/^datadir=\/var\/lib\/mysql/datadir=$DATA_DIR' /etc/my.cnf

   chown -R mysql.mysql /data/mysql/

sh /usr/local/mysql/scripts/mysql_install_db--user=mysql --basedir=/usr/local/mysql--datadir=$DATA_DIR  &&
/etc/init.d/mysqldstart                                            #初始化数据库
else
echo"Your input mysql version  is not in $MYSQL_DIR"
fi

下面我们测试这个脚本是否能正常执行。

    首先新建目录/data/software,在mysql官方网站下载mysql-5.5.47.tar.gz和cmake源码包。

    接下来我们执行mysql安装脚本,这里要手动输入mysql版本号码5.5.47,然后脚本会自动安装.

    最后查看一下mysql数据库的安装是否OK,通过查看mysql数据库启动文件,端口,数据文件等等都是正常的。

            netstat -ntlp | grep 3306

    总结:上面的脚本里面都做了简单的注释,下面着重说明一下在安装过程中容易出错的地方。

     1)export "PATH=$PATH:/usr/local/cmake/bin" > /etc/profile && source /etc/profile

          export "PATH=$PATH:/usr/local/mysql/bin" > /etc/profile && source /etc/profile

脚本里面的这行代是修改环境变量,否则在编译安装mysql数据库的时候出错提示说找不到cmake命令和mysql命令。
     2)sed -i 's/^basedir=/basedir=\/usr\/local\/mysql/' /etc/init.d/mysqld和  sed -i 's/^datadir=/datadir=\/data\/mysql\/3306/' /etc/init.d/mysqld 脚本里面的这两行在mysql启动文件指定mysql数据库的安装目录和数据目录存放目录。
     3)sed -i 's/`@HOSTNAME@`/Linux-node2.com/' /etc/init.d/mysqld 脚本的这行是用mysql服务器的主机名替换掉`@HOSTNAME@`,否则在启动数据库的时候会提示下面错误,/etc/init.d/mysqld: line 263: @HOSTNAME@: command not found,但数据库能正常启动。

     4)sed -i 's/^datadir=\/var\/lib\/mysql/datadir=$DATA_DIR' /etc/my.cnf 修改mysql的配置文件中[mysqld]下 datadir的目录

                   


运维网声明 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-159975-1-1.html 上篇帖子: Starting MySQL...... ERROR! Manager of pid-file quit without updating file. 下篇帖子: mysql同步redis
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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