您的位置:首页 > 博客中心 > 数据库 >

用shell脚本实现通用二进制格式mysql 5.5.28 x86_64的安装

时间:2022-03-14 03:30

shell脚本实现通用二进制格式mysql 5.5.28 x86_64的安装

首先在网上用gfsoso.com来搜索下载mysql软件包mysql-5.5.28-linux2.6-x86_64.tar.gz,再用

winSCP把mysql上传到服务器上,上传位置可根据个人喜好,我个人一般放在服务器的/usr/local/src目录下。

此处我们是先命令行下实现一次,而后所有操作全部用shell脚本自动实现。

个人环境 centos 6.5 X86-64  所用空闲空间都做成了LVM。

准备工作:

    [root@localhostsrc]# mkdir /mysql

    使用lvdisplay查看逻辑卷是否创建成功

    [root@localhostsrc]# lvdisplay

    。。。。。。。。。。。。。。。。。。。

    --- Logical volume---

      LV Path                /dev/vg_lvm/data

      LV Name                data

      VG Name                vg_lvm

      LV UUID               nYkURv-67Av-ST1L-05EL-rhGA-Dt1V-Rfl1cA

      LV Write Access        read/write

      LV Creation host, time localhost.localdomain,2014-12-01 22:15:26 +0800

      LV Status              available

      # open                 0

      LV Size                5.00 GiB

      Current LE             160

      Segments               1

      Allocation             inherit

      Read ahead sectors     auto

      - currently set to     256

      Block device           253:2

    我们发现创建成功了,此时我们来格式化创建的逻辑卷

    [root@localhostsrc]# mkfs -t ext4 /dev/vg_lvm/data

    mke2fs 1.41.12(17-May-2010)

    Filesystem label=

    OS type: Linux

    Block size=4096(log=2)

    Fragment size=4096(log=2)

    Stride=0 blocks,Stripe width=0 blocks

    327680 inodes,1310720 blocks

    65536 blocks(5.00%) reserved for the super user

    First data block=0

    Maximum filesystemblocks=1342177280

    40 block groups

    32768 blocks pergroup, 32768 fragments per group

    8192 inodes pergroup

    Superblock backupsstored on blocks:

            32768, 98304, 163840, 229376, 294912,819200, 884736

     

    Writing inodetables: done                            

    Creating journal(32768 blocks): done

    Writingsuperblocks and filesystem accounting information: done

     

    This filesystemwill be automatically checked every 21 mounts or

    180 days,whichever comes first.  Use tune2fs -c or-i to override.

    格式化成功

    注意:此处写脚本时,应该让其睡眠一会

    把创建的逻辑卷挂载到/mysql上,并让其开机后可以自动挂载,我们把挂载信息放到/etc/fstab文件上。

    [root@localhostsrc]# mount /dev/vg_lvm/data /mysql

    [root@localhostsrc]# vim /etc/fstab

    /dev/vg_lvm             /mysql                  ext4    defaults        0  0添加到尾部

    让系统读取/etc/fstab文件

    [root@localhostsrc]# mount -a

    mount: /dev/vg_lvmis not a block device

    挂载设备写错了修改

    /dev/vg_lvm/data             /mysql                  ext4    defaults        0 0

    此时在执行Mount  -a

    [root@localhostsrc]# ls /mysql/

    lost+found

    创建数据目录

    [root@localhostsrc]# mkdir /mysql/data

    因此目录是给mysql用的,所以把权限改为mysql用户和组,由于是mysql使用,其他用户应该不给予任何权限操作。

    [root@localhostsrc]# chown -R mysql.mysql /mysql/data

    [root@localhostsrc]# chmod o=- /mysql/data

    [root@localhostsrc]# ls -ld /mysql/data/

    drwxr-x---. 2mysql mysql 4096 Dec  1 22:34/mysql/data/

     

    此时就可以进入操作mysql了

      执行此脚本

      [root@localhostmysql]# .  /etc/profile.d/mysql.sh

      启动mysql

      [root@localhostmysql]# service mysqld start

      Starting MySQL...SUCCESS!

      [root@localhostmysql]# mysql

      Welcome to theMySQL monitor.  Commands end with ; or\g.

      Your MySQLconnection id is 1

      Server version:5.5.28-log MySQL Community Server (GPL)

       

      Copyright (c)2000, 2012, Oracle and/or its affiliates. All rights reserved.

       

      Oracle is aregistered trademark of Oracle Corporation and/or its

      affiliates. Othernames may be trademarks of their respective

      owners.

       

      Type ‘help;‘ or‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

       

      mysql> \q

      Bye

       

      导出二进制文件、导出库文件、导出头文件、导出man文件不是一定要做的,可以根据需要自己系统环境要求选择导出相应的目录

      mysql帮助文档目录

      [root@localhostmysql]# ls /usr/local/mysql/man/

      man1  man8

      输出mysql的帮助文件,编辑/etc/man.config

      在MANPATH那行添加mysql的man路径

      #

      # Everyautomatically generated MANPATH includes these fields

      #

      MANPATH /usr/man

      MANPATH/usr/share/man

      MANPATH/usr/local/man

      MANPATH/usr/local/share/man

      MANPATH/usr/X11R6/man

      添加MANPATH /usr/local/mysql/man

      输出mysql的库文件

      [root@localhostmysql]# ls /usr/local/mysql/lib/

      在/etc/ld.so.conf.d/下面新增一个mysql.conf文件,把mysql的库文件路径添加到mysql.conf中。

      再执行ldconfig -v使其生效  -v是显示过程的,让系统重新读取库文件到缓存中,系统的缓存文件

      为/etc/ld.so.cache

      [root@localhostmysql]# echo "/usr/local/mysql/lib" > /etc/ld.so.conf.d/mysql.conf

      [root@localhostmysql]# ldconfig -v

      输出头文件,用创建连接的方式实现

      [root@localhostmysql]# ln -sv /usr/local/mysql/include /usr/include/mysql

      `/usr/include/mysql‘-> `/usr/local/mysql/include‘

      [root@localhostmysql]# ls /usr/include/mysql/

      decimal.h       my_compiler.h  my_net.h         mysql.h            plugin.h

      errmsg.h        my_config.h    my_pthread.h     mysql_time.h       sql_common.h

      。。。。。。

      完成了

      脚本实现

      #!/bin/bash

      #current derectoryis /usr/local/

      #Automation mysqlinstallation

      groupadd -g 306mysql

      useradd -g 306 -u306 -r -s /sbin/nologin mysql

       

      lvcreate -n data-L 10G /dev/vg_lvm > /dev/null

      mkdir /mysql

      mkfs -t ext4/dev/vg_lvm/data >/dev/null

      sleep 3

      mount/dev/vg_lvm/data /mysql

      echo"/dev/vg_lvm/data   /mysql    ext4  defaults  00">>/etc/fstab

      mount -a

       

      mkdir /mysql/data

      chown -Rmysql.mysql /mysql/data

      chmod -R o=-/mysql/data

       

      tar xf/usr/local/src/mysql-5.5.28-linux2.6-x86_64.tar.gz -C /usr/local/

      sleep 10

       

      ln -sv/usr/local/mysql-5.5.28-linux2.6-x86_64/ /usr/local/mysql >/dev/null

      chown -Rmysql.mysql /usr/local/mysql/*

       

      /usr/local/mysql/scripts/mysql_install_db--user=mysql --datadir=/mysql/data/ --basedir=/usr/local/mysql >/dev/null

      sleep 3

       

       

       

      chown -R root/usr/local/mysql/*

       

      cp/usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

      chkconfig --addmysqld

      [ -e /etc/my.cnf ]&& rm -f /etc/my.cnf ] && cp /usr/local/mysql/support-files/my-huge.cnf/etc/my.cnf -f

       

      sed -i‘/^\[mysqld\]/a datadir=/mysql/data‘ /etc/my.cnf

      echo"PATH=$PATH:/usr/local/mysql/bin" > /etc/profile.d/mysql.sh

      ./etc/profile.d/mysql.sh

      service mysqldstart >/dev/null

      sleep 2

      mysql

      有什么漏掉了,希望可以帮忙指正   谢谢

       


      本文出自 “” 博客,请务必保留此出处

本类排行

今日推荐

热门手游