Linux Shell 实现一键部署mariadb10.11

news2024/12/20 14:37:25

mariadb

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。

download mariadb

mariadbmariadb(RPM)文档

download

官网

参考

参考

Linux 各系统下载使用参考

Red HatRocky Linux Oracle Linux

AlmaLinux 

ubuntususelinuxesxiRHEL标准安装系统安装参考YUM参考

MobaXterm 远程连接工具

Red Hat Enterprise 9.0 文档Kickstart 生成器
downloaddownloaddownloaddownloaddownloaddownloaddownload参考参考配置参考download参考Kickstart 
版本兼容性

mariadb 10.11 一键自动化部署编写

  • 最终实现在线下载mariadb二进制包,安装依赖,环境变量设置,初始化数据库,创建库,创建用户,创建用户权限,远程连接设置,版本获取,安装完成删除包,防火墙设置。
  •  /usr/local/mysql 安装位置
  • /usr/local/mysql/data 数据目录
  • linux 系统创建的mariadb 是mysql
  • root/Report@123 mariadb数据库登录管理员
  • mar/Report@123 此账号是自定义创建的管理员,生产环境删除哦
  • mariadb_test 创建的临时数据库
  • /usr/local/mysql/support-files/systemd/mariadb.service #默认官方的服务脚本
  • /usr/lib/systemd/system/mariadb.service 系统服务脚本(如果变更了目录请更改服务脚本内文件路径)
vi /mariadb_install.sh
#!/bin/bash
# -*- coding: utf-8 -*-
# Author: CIASM
# update 2023/06/05
# increase indent:Tab
# decrease indent:Shift+Tab
# install source mariadb

<<!
download 
https://archive.mariadb.org/

installing-mariadb-binary-tarballs 
https://mariadb.com/kb/en/installing-mariadb-binary-tarballs/

Document center 
https://mariadb.com/kb/zh-cn/
!

install_mariadb (){

if ! compgen -u mysql  &> /dev/null
    then
	
	if [ $? -eq 0 ];then
	
#download mariadb
mariadb_url=https://archive.mariadb.org/mariadb-10.11.3/bintar-linux-systemd-x86_64/
mariadb_gz=mariadb-10.11.3-linux-systemd-x86_64.tar.gz

#mariadb mysql user
mysql_user=mysql
mysql_root_password=Report@123

#mariadb directory
mysql_data=data
msyql_directory=mysql
mariadb_decompression_directory=mariadb-10.11.3-linux-systemd-x86_64
mysql_prefix=/usr/local/mysql
mysql_download=/tmp

echo "Create user and groups for mariadb Database service"
groupadd $mysql_user
useradd -r -s /sbin/nologin -g $mysql_user $mysql_user

echo "Firewall port development"
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
firewall-cmd --zone=public --add-port=3306/tcp --permanent && firewall-cmd --reload

echo "Dependent installation"
yum install -y http://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
yum install -y gcc gcc-c++ net-tools make cmake
yum -y install libncurses* zlib-devel libcurl-devel boost-devel ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio libaio-devel perl-Data-Dumper

echo "limits config"
cat >>/etc/security/limits.conf<<EOF
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
EOF

echo "system Maximum number of connections"
echo "fs.file-max=65535" >> /etc/sysctl.conf

echo "download mariadb"
wget -N -P $mysql_download $mariadb_url$mariadb_gz

echo "decompression mariadb"
tar -xf $mysql_download/$mariadb_gz -C $mysql_download
mv $mysql_download/$mariadb_decompression_directory $mysql_prefix

echo "The permission of the directory user is granted"
chown -R root $mysql_prefix
mkdir -p $mysql_prefix/$mysql_data
chown -R $mysql_user $mysql_prefix/$mysql_data

cat >>/etc/my.cnf<<EOF
[Client]
port=3306
default-character-set=utf8mb4
socket=$mysql_prefix/$mysql_data/mysql.sock

[mysqld]
basedir=$mysql_prefix
datadir=$mysql_prefix/$mysql_data
port=3306
socket=$mysql_prefix/$mysql_data/mysql.sock
pid-file=$mysql_prefix/$mysql_data/mysql.pid
max_connections=200
character_set_server=utf8mb4
collation-server=utf8mb4_unicode_ci
character-set-client-handshake=FALSE
default-storage-engine=INNODB
default-time_zone='+8:00'
log_bin_trust_function_creators = on
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES


[client]
socket=$mysql_prefix/$mysql_data/mysql.sock
default-character-set=utf8mb4
EOF

echo "mariadb environment variable"
echo 'umask 022' >>  ~/.bash_profile
echo 'PATH=$PATH:/usr/local/mysql/bin' >>  ~/.bash_profile
source  ~/.bash_profile

echo "initialize mariadb"
$mysql_prefix/scripts/mariadb-install-db --user=$mysql_user --basedir=$mysql_prefix --datadir=$mysql_prefix/$mysql_data

echo "system service mariadb"
cp -rf $mysql_prefix/support-files/systemd/mariadb.service /usr/lib/systemd/system/mariadb.service
systemctl daemon-reload
systemctl enable mariadb.service
systemctl start mariadb.service

echo "check mariadb version"
mysql -V | awk '{print $5}'

echo "Configuring the root Password"
$mysql_prefix/bin/mysql -e "alter user root@localhost identified by 'Report@123'; FLUSH PRIVILEGES;"

echo "Allow root to log in remotely"
$mysql_prefix/bin/mysql -uroot -p$mysql_root_password -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Report@123' WITH GRANT OPTION;"

echo "Create a library, create a user to give the user ownership of the library, create, delete, modify, super administrator rights"
$mysql_prefix/bin/mysql -uroot -p$mysql_root_password -e "CREATE DATABASE mariadb_test;"
$mysql_prefix/bin/mysql -uroot -p$mysql_root_password -e "CREATE USER mar@'%' IDENTIFIED BY 'Report@123';"
$mysql_prefix/bin/mysql -uroot -p$mysql_root_password -e "GRANT ALL PRIVILEGES ON *.* TO mar@'%' WITH GRANT OPTION;"
$mysql_prefix/bin/mysql -uroot -p$mysql_root_password -e "GRANT SUPER ON *.* TO mar@'%';"

echo "Deleting an installation package"
rm -rf $mysql_download/$mariadb_gz

	echo -e "\033[32mThe mariadb Install Success...\033[0m" 
	else
	echo -e "\033[31mThe mariadb Install Failed...\033[0m" 
	exit 1
	fi
else
	echo -e "\033[33mThe mariadb Install already...\033[0m"
fi
}

main (){
	install_mariadb
}
 
main

执行一键安装 mariadb

sh /mariadb_install.sh

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/612310.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构与算法分析】反转链表与顺序表(内含源码,思路清晰)

文章目录 介绍实现顺序表反转实现链表反转附链表的一些中间函数 介绍 顺序表和链表都是数据结构中常见的线性表。它们的主要区别在于内存管理方式不同。   顺序表&#xff08;Array&#xff09;是由一系列元素按照一定顺序依次排列而成&#xff0c;它使用连续的内存空间存储数…

【数据结构】--单链表力扣面试题⑥链表的回文结构

题述&#xff1a;对于一个链表&#xff0c;请设计一个时间复杂度为o(n),额外空间复杂度为o(1)的算法&#xff0c;判断其是否为回文结构。给定一个链表的头指针A&#xff0c;请返回一个bool值&#xff0c;代表其是否为回文结构。保证链表长度<900 测试样例&#xff1a; 输入…

【统计分析】Bland-Altman图:MedCalc操作指南与Python实现

之前有记录过一致性分析中的天选之子ICC&#xff08;传送&#xff09;&#xff0c;也提到过Bland-Altman图&#xff0c;Bland-Altman图在一致性分析中作为一种既定量又定性的方法&#xff0c;还有着高颜值的表达展现&#xff0c;受到了广泛地应用。   如下图所示&#xff0c;…

Explaining predictive models: the Evidence Counterfactual

Imagine being targeted with an advertisement for this blog. You’d like to know: why did the AI model predict you’d be interested in the Faculty of Business and Economics’ blog, based on the hundreds of web pages you visited? The answer could be: becaus…

搭建ubuntu容器内C/C++开发调试环境

一、创建容器 为了让容器内的调试器&#xff08;gdb、lldb&#xff09;能够正常调试&#xff0c;在创建容器时需要添加参数&#xff1a; podman添加参数&#xff1a;--cap-addSYS_PTRACE&#xff0c;docker添加参数--cap-addSYS_PTRACE --security-opt seccompunconfined 否…

chatgpt赋能python:Python快捷键——另存为

Python快捷键——另存为 Python是一种高级编程语言&#xff0c;由Guido van Rossum于1991年创立。它的干净简洁&#xff0c;常规用途在计算机编程领域找到了广泛的应用。Python语言是一种普遍而有效的编程语言&#xff0c;有不少的Python程序员喜欢利用快捷键来提高编程效率。…

中医养生APP小程序开发 了解传统文化传承医学经典

中国文化博大精深&#xff0c;中国传统文化更是历史久远&#xff0c;一直到几千年后的今天很多传统文化依然对我们现在的生活有着重大的影响&#xff0c;比如中医。随着人们对健康关注度的提高&#xff0c;很多人把目光投向了追本溯源的中医上&#xff0c;企图通过中医养生达到…

搜索算法(四) 广度优先搜素算法

一、BFS bfs一层一层地遍历图或树&#xff0c;一般用队列实现&#xff0c;可以计算距离目标的步数。 二、例题 1&#xff09; 力扣https://leetcode.cn/problems/shortest-bridge/ 这道题实际是计算两个岛屿之间的最短距离&#xff0c;可以先用dfs搜索到第一个岛屿并且记录第…

TDEngine - taosdump的安装与使用实战

taosdump的安装与使用实战 一、taosdump简介二、下载三、安装四、taosdump主要参数五、taosdump数据导出&#xff08;备份&#xff09;六、taosdump数据导入七、不同版本的数据迁移7.1 问题&#xff1a;报错- create database 语句不一致7.2 解决&#xff1a;修改导出的dbs.sql…

MTK平台的SWT异常的简单总结(2)——SWT原理和分析

&#xff08;1&#xff09;原理性 &#xff08;2&#xff09;SWT如何抓取Log 遇到SWT问题详细可参考MTK提供的FAQ&#xff1a;SWT机制介绍。 获取Ap Log的路径&#xff1a;/sdcard/debuglogger/mobilelog/APLog_XXXXX 获取db的路径&#xff1a;/data/aee_exp 如果db没有打包…

RK3288 Android5.1添加WiFiBT模块AP6212

CPU&#xff1a;RK3288 系统&#xff1a;Android 5.1 注&#xff1a;RK3288系统&#xff0c;目前 Android 5.0 Kernel 3.10 SDK 支持 Braodcom,Realtek 等 WiFi BT 模块 各个 WiFi BT 模块已经做到动态兼容&#xff0c;Android 上层不再需要像以前一样进 行特定宏的配置 此…

华为OD机试真题 Java 实现【关联子串】【2023Q1 100分】,附详细解题思路

一、题目描述 给定两个字符串str1和str2&#xff0c; str1进行排列组合只要有一个为str2的子串则认为str1是str2的关联子串&#xff0c; 请返回子串在str2的起始位置&#xff0c;若不是关联子串则返回-1。 二、输入描述 qwe dsgfasgfwe 三、输出描述 -1 四、解题思路 …

遇到大数据处理,你会怎么办?快来看一下位图和布隆过滤器(下)

目录 前文 一&#xff0c;为什么有布隆过滤器 二&#xff0c;什么是布隆过滤器 三&#xff0c;布隆过滤器的实现 四&#xff0c;布隆过滤器的优缺点 4.1 布隆过滤器的优点 4.2 布隆过滤器的缺点及其改进方式 4.2.1 查找误判及其改进方式分析 4.2.2 不能删除以及改进方式分…

【HTML】第 1 节 - HTML 初体验

欢迎来到博主 Apeiron 的博客&#xff0c;祝您旅程愉快 。 时止则止&#xff0c;时行则行。动静不失其时&#xff0c;其道光明。 目录 1、缘起 2、HTML 概念 2.1、HTML 定义 2.2、标签语法 3、HTML 基本骨架 4、标签的关系 5、注释 6、总结 1、缘起 最近在学习微信小程…

程序员0基础转行大数据年薪25万,只因我做了这件事...

现在我在成都的一家企业做大数据架构师&#xff0c;一个月税前可以拿到20k&#xff0c;还有项目奖金&#xff0c;一年下来最少也能拿25万。生活和工作也都在有条不紊地运转&#xff0c;每天也会有新的挑战&#xff0c;这正是我想要的生活。 01 机械工程专业 但我决定转行互联…

SpringBoot自定义starter之接口日志输出

文章目录 前言文章主体1 项目全部源码2 项目结构介绍3 starter 的使用3.1 配置文件 application,yml的内容3.2 启动类3.3 控制器类 4 测试结果 结语 前言 本文灵感来源是一道面试题。 要求做一个可以复用的接口日志输出工具&#xff0c;在使用时引入依赖&#xff0c;即可使用。…

MySQL数据库 10.DCL操作

目录 &#x1f914; 前言&#xff1a; &#x1f914;DCL介绍&#xff1a; &#x1f914;1.DCL管理用户&#xff1a; 1.查询用户&#xff1a; 图示&#xff1a; 2.创建用户 示例1&#xff1a; 运行结果&#xff1a;​ 示例2&#xff1a; 运行结果&#xff1a;​ 3.修改…

算法修炼之筑基篇——筑基一层中期(解决01背包,完全背包,多重背包)

✨博主&#xff1a;命运之光​​​​​​ &#x1f984;专栏&#xff1a;算法修炼之练气篇​​​​​ &#x1f353;专栏&#xff1a;算法修炼之筑基篇 ✨博主的其他文章&#xff1a;点击进入博主的主页​​​​​​ 前言&#xff1a;学习了算法修炼之练气篇想必各位蒟蒻们的基…

安全——网络安全协议的引入

TCP/IP安全缺陷 信息泄露 概述 网络中投递的报文往往包含账号、口令等敏感信息&#xff0c;若这些信息泄露则是灾难性的后果。其中嗅探是一种常见而隐蔽的网络攻击手段。 嗅探 概述 问题&#xff1a;在共享式网络架构下&#xff0c;所有的数据都是以广播方式进行发送&…

程序员大专毕业,月薪2w是什么体验?

在这个数据驱动的时代&#xff0c;大数据行业的发展前景也非常广阔&#xff0c;我相信我的未来会越来越光明 01 开始学习 是迈向前方的第一步 我是三月&#xff0c;一个来自小城市的大专毕业生。现在在杭州一家公司做大数据开发工程师&#xff0c;目前薪资是20k*13。 我本身…