暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Linux服务器离线安装Mysql等软件的最佳方法

洪文聊架构 2021-03-03
1517

由于特殊的专用网络环境和安全策略等方面的原因,服务器往往无法访问互联网,这时我们还需要在服务器上安装软件,比如mysql、httpd。


那么如何选择安装方式最合适呢?接下来我就介绍一下我们离线安装软件mysql的方法,以及总结的解决方案。


1、下载软件的RPM包安装

首先,我们会想到直接下载对应RPM包安装,但这种方式你无法了解RPM包之间的依赖关系,往往当你安装rpm包时,可能会提示依赖另一个rpm包,就还需要去下载这个rpm包,回头可能这个rpm包还依赖另一个rpm,吐血。这样,往往会花大量的时间去尝试安装和下载所有的相关rpm包,不推荐此方式。


2、下载源码进行编译

采用这种方式的话,源码在服务器上编译时,一是可能比较耗时,二是也经常会报错,比如gcc的版本不匹配等,离线环境下对编译环境进行升级和调整也会是件麻烦事。


3、直接下载二进制包安装(推荐)

直接下载软件的二进制tar包,解压之后,进行相关的配置后,即可启动运行。一个字,爽!


对于我们的项目需求,就是在离线环境上安装mysql5.1版本(由于项目较老,指定安装这个版本),我们最终选择这种方式,具体过程如下:


1、下载安装包:

下载mysql5.1的二进制安装包,大家注意要根据自己的环境选择好下载32位还是64位,第一次我下载的是32位的安装过程中会报错。

    cd/usr/local/src/ 
    wget http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.1/mysql-5.1.73-linux-x86_64-glibc23.tar.g



    2、解压内容到/usr/local/mysql

      tar -zxvf mysql-5.1.73-linux-x86_64-glibc23.tar.gz 
      mkdir -p usr/local/mysql
      mv mysql-5.1.73-linux-x86_64-glibc23/* usr/local/mysql


      3、创建用户mysql和组mysql,并修改目录属于mysql

        groupadd mysql
        useradd -g mysql -s/sbin/nologin mysql
        chown -R mysql:mysql /usr/local/mysql


        ##建立mysql用户和组,-s选项指定shell为/sbin/nologin
        groupadd mysql
        useradd -g mysql -s/sbin/nologin mysql


        4、初始化数据库

          ##初始化数据库
          ./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data


          5、拷贝配置文件到软件指定目录,并赋予执行权限

            cp support-files/my-large.cnf etc/my.cnf
            cp support-files/mysql.server /etc/init.d/mysqld
            chmod 755 /etc/init.d/mysqld


            6、添加开机启动,并启动mysql

              service mysqld start
              chkconfig --add mysqld


              7、命令行可执行mysql,在/etc/profile内添加如下内容:

                export PATH=$PATH:/usr/local/mysql/bin
                #使配置生效
                source etf/profile
                #登陆
                mysql -uroot -p



                4、利用包管理工具安装软件

                可采用另一种思路:在可联网机器上通过yum或apt包管理工具,下载好软件相关的所有依赖rpm包,然后拿着这些包copy到离线服务器上安装rpm包即可。


                可采用如下步骤:

                第一步:

                Centos环境,通过yum在一台比线上机器OS更干净的一台机器上,执行类似的命令:

                  yum install --downloadonly --downloaddir=/root/test mysql

                  完成相关依赖包的下载,下载到指定目录。


                  第二步:

                  然后我们拿着这些包去线上的机器上执行:

                    rpm -ivh --force --nodeps *.rpm

                    没问题就ok。

                    如果有问题就再找缺失的相关依赖包即可。

                    5、创建镜像仓库离线安装软件

                    基于方案四的基础上,将通过yum下载下来的rpm包做成一个仓库,将仓库copy离线服务器上,配置源为这个仓库,直接yum install命令就装上了。


                    此方法更适合局域网内不同机器多次安装软件,由于我们的需求只是在一台机器上装上mysql即可,所以采用的方案2。


                    具体步骤如下,以Centos环境,安装httpd为例:

                    第一步:

                    就是通过yum在一台比线上机器OS更干净的一台机器上,执行类似的命令:

                      yum install --downloadonly --downloaddir=/root/test httpd

                      完成相关依赖包的下载,下载到指定目录。


                      第二步:

                      还是在可以上网的机器上使用createrepo创建本地仓库

                        yum install createrepo
                        createrepo /root/test/  #将该目录制作成软件仓库,并在第一步中已经包含了httpd的所有rpm包
                        ll /root/test/


                        第三步:

                        登陆没有外网的机器,把第二步的整个文件夹/root/test/copy过来。

                        这样就是一个现成的仓库了。再配置yum源为本地的这个仓库,然后就可以yum install了。

                          cat /etc/yum.repos.d/test.repo   #写个repo文件
                          [test]
                          name=test
                          enable=1
                          gpgcheck=0
                          baseurl=file:///root/test/


                          yum repolist
                          yum install httpd   

                                      

                          实际测试,http安装成功。

                          以上就是对于离线安装软件的几种解决方案,并实际举例mysql与httpd的安装。



                          —————END—————


                          喜欢本文的朋友,欢迎关注公众号 洪文聊架构,收看更多的精彩内容




                          喜欢就请"关注/转发/在看"呗^_^

                          文章转载自洪文聊架构,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                          评论