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

2021-01-25 10:36:49 浏览数 (1)

由于特殊的专用网络环境和安全策略等方面的原因,服务器往往无法访问互联网,这时我们还需要在服务器上安装软件,比如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位的安装过程中会报错。

代码语言:txt复制
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

代码语言:txt复制
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

代码语言:txt复制
groupadd mysqluseradd -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、初始化数据库

代码语言:txt复制
##初始化数据库
./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data

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

代码语言:txt复制
cp support-files/my-large.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqldchmod 755 /etc/init.d/mysqld

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

代码语言:txt复制
service mysqld startchkconfig --add mysqld
image.jpegimage.jpeg

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

代码语言:txt复制
export PATH=$PATH:/usr/local/mysql/bin
 #使配置生效 
source /etf/profile
 #登陆 
mysql -uroot -p
image.jpegimage.jpeg

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

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

可采用如下步骤:

第一步:

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

代码语言:txt复制
yum install  --downloadonly --downloaddir=/root/test mysql

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

第二步:

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

代码语言:txt复制
rpm -ivh --force --nodeps *.rpm

没问题就ok。

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

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

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

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

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

第一步:

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

代码语言:txt复制
yum install  --downloadonly --downloaddir=/root/test httpd

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

image.jpegimage.jpeg

第二步:

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

代码语言:txt复制
yum install createrepocreaterepo /root/test/ 
代码语言:txt复制
 #将该目录制作成软件仓库,并在第一步中已经包含了httpd的所有rpm包
ll /root/test/
image.jpegimage.jpeg

第三步:

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

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

代码语言:txt复制
[root@163 ~]# cat /etc/yum.repos.d/test.repo   #写个repo文件
[test]
name=test
enable=1
gpgcheck=0
baseurl=file:///root/test/
[root@163 ~]# yum repolist
[root@163 ~]# yum install httpd    
image.jpegimage.jpeg

实际测试,http安装成功。

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

—————END—————

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

0 人点赞