一个完全没有网络的debian系统中安装mariadb数据库的记录

这次遇到了一个问题,就是公司需求在一个完全没有网络的debian11上安装一个mariadb的数据库,版本没啥要求。
在虚拟机里面不管怎么整理都没办法实现,总是会缺少这样或者那样的依赖。后来同事说了一个centos下的解决方案,然后顺着这个方案,总算完成了。
这里记录一下,需要的材料就是一个能上网的debian系统。
首先需要在联网模式下将所有mariadb的所有安装包(包括依赖)都下载下来。
这里其实debian已经提供了一个很快捷方式,只是平时很少用到而已。
这里先放上我自己做的安装包 留做记录,以便后续需要
mariadb-10.5_install.tar.gz

百度云盘
链接:https://pan.baidu.com/s/1wUTCd1hO21lSgAkRcpdf7Q
提取码:opa1

apt -d install mariadb-server mariadb-client

这个命令可以将apt库中的相关mariadb的所有安装包都下载下来,目录是固定在/var/cache/apt/archives 目录下面,为了不安装其他乱七八糟的包,可以在下载之前先将这个目录清空。
在下载完成之后,将里面下载生成的lock文件以及其他的文件夹都删除。
然后将这个目录下所有文件复制到一个指定的目录。
然后就是写安装的shell脚本以及修改连接权限了。
这里我用的是mariadb 10.5的版本,存放目录是 /root/downloads/mariadb_10.5_deb
安装的脚本是:

dir=mariadb_10.5_deb
for file in $dir/*; do
	dpkg --force-depends -i $file
done

dpkg -i $dir/mariadb-server-10.5_1%3a10.5.12-0+deb11u1_amd64.deb

sed -i 's/^bind-address*/#bind-address/' /etc/mysql/mariadb.conf.d/50-server.cnf

mysql="mysql -u root -proot"
$mysql -e "set password for root@localhost = password('root');"
$mysql -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;"
$mysql -e "FLUSH PRIVILEGES;"
/etc/init.d/mariadb restart

说明一下,这里的dpkg 后面接的–force-depends参数的意思是强制安装,不管依赖是否已经安装,毕竟这里没有指定安装包的先后顺序,所以就必须强制安装。
在for循环之后再次安装mariadb-server的包是因为,在刚开始的时候执行完,再登录msql始终无法登录成功,后检查日志给出的是表不存在,这才想起来安装顺序是没有指定的,于是就再次执行了一下mariadb-server这个包,然后就正常了。
这个脚本需要给执行权限,脚本最好mariadb_10.5_deb同级。
只是这时候只能用127.0.0.1登录,然后就找一通查找,发现/etc/mysql/mariadb.conf.d/50-server.cnf中存在一个绑定地址的设定,然后就用脚本直接替换,后面的就是修改root密码,然后重启服务了。
然后就是打包了。
这里推荐使用git里面的tar -zcf xxxxx.tar.gz xxxxx的命令来打包,不至于在将安装包复制到没有网络的PC上无法解压。(如果实在linux上请忽略)

在centos 上,其实yum 也存在这样的命令

yum install docker-ce --downloadonly --downloaddir=/home/dockerrpm/

其中docker-ce是需要安装的包,–downloadonly就是字面意思,–downloaddir就是你下载的rpm包存在的位置。这个要比debian方便一些。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值