Linux Shell 实现一键部署mariadb10.11

news/2025/6/1 18:12:44

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/nullthenif [ $? -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=/tmpecho "Create user and groups for mariadb Database service"
groupadd $mysql_user
useradd -r -s /sbin/nologin -g $mysql_user $mysql_userecho "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 --reloadecho "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-Dumperecho "limits config"
cat >>/etc/security/limits.conf<<EOF
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
EOFecho "system Maximum number of connections"
echo "fs.file-max=65535" >> /etc/sysctl.confecho "download mariadb"
wget -N -P $mysql_download $mariadb_url$mariadb_gzecho "decompression mariadb"
tar -xf $mysql_download/$mariadb_gz -C $mysql_download
mv $mysql_download/$mariadb_decompression_directory $mysql_prefixecho "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_datacat >>/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
EOFecho "mariadb environment variable"
echo 'umask 022' >>  ~/.bash_profile
echo 'PATH=$PATH:/usr/local/mysql/bin' >>  ~/.bash_profile
source  ~/.bash_profileecho "initialize mariadb"
$mysql_prefix/scripts/mariadb-install-db --user=$mysql_user --basedir=$mysql_prefix --datadir=$mysql_prefix/$mysql_dataecho "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.serviceecho "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_gzecho -e "\033[32mThe mariadb Install Success...\033[0m" elseecho -e "\033[31mThe mariadb Install Failed...\033[0m" exit 1fi
elseecho -e "\033[33mThe mariadb Install already...\033[0m"
fi
}main (){install_mariadb
}main

执行一键安装 mariadb

sh /mariadb_install.sh
文章来源:https://blog.csdn.net/hanzheng260561728/article/details/131052315
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://dhexx.cn/news/show-4633483.html

相关文章

Qcom_hexagon编译自动获取目录和特定文件的方法

一&#xff0c;简介 本文主要介绍&#xff0c;如何在高通hexagon ide中的hexagon.min中添加获取目录和.c文件的方法&#xff0c;供参考。 二&#xff0c;具体命令 OBJ_PATH : ./awinic_sp_module/algo_libINCLUDE_PATH : $(shell find $(OBJ_PATH ) -type d) SRC_C_FILE : …

调试代码记录矩形X形

绘制矩形 read_image (Image, C:/Users/zhangwd/Desktop/微信图片_20230603131406.bmp) binary_threshold (Image, Region, max_separability, light, UsedThreshold) connection (Region, ConnectedRegions) * select_shape (ConnectedRegions, SelectedRegions1, row, and, …

Megatron + zero

文章目录 简介3D并行前置知识点&#xff1a;通信算子1. DP 数据并行显存效率优化&#xff08;ZeRO &#xff09;计算效率优化&#xff08;梯度累计减少通信&#xff09; 2. TP tensor并行&#xff08;算子内&#xff09;前置知识点&#xff1a;矩阵分块并行计算MLPself-attenti…

人事项目开发记录-登录模块

人事项目开发记录 后端接口实现 后端接口实现 后端权限认证采用Spring Security实现&#xff08;本小节中大量知识点与第10章的内容相关&#xff0c;需要读者熟练掌握第10章的内容&#xff09;&#xff0c;数据库访问使用MyBatis&#xff0c;同时使用Redis实现认证信息缓存。因…

5.2.6 地址解析协议ARP

5.2.6 地址解析协议ARP 我们知道要想实现全球范围内主机之间的通信&#xff0c;必须要有两个统一&#xff0c;一个是地址&#xff0c;另一个是数据格式&#xff0c;我们使用IP地址来实现统一的地址&#xff0c;使用IP分组实现统一的数据格式&#xff0c;在前面局域网的学习中我…

ChatGPT市场营销指南震撼出炉,你错过了?!

ChatGPT是一种基于AI技术的语言模型&#xff0c;它可以与用户进行对话和交互。它被广泛应用于各个领域&#xff0c;包括市场营销。作为一名市场营销人员&#xff0c;您可以使用ChatGPT来获得创意、解决问题和生成内容。 下面是190个ChatGPT提示&#xff0c;可帮助营销人员更好…

移除元素(双指针) Python 力扣

目录 题目描述 代码展示 知识点分析 题目描述 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的…

详细介绍HTML5的离线储存(工作原理+使用场景+真实使用步骤)

详细介绍HTML5的离线储存&#xff08;工作原理使用场景真实使用步骤&#xff09; 前言&#xff1a;一、工作原理&#xff1a;二、使用场景&#xff1a;三、使用步骤1. 创建并配置缓存清单2. 将缓存清单与HTML文件相关联3. 使用JavaScript调用应用程序缓存对象4. 测试离线缓存 四…

python 社区发现算法

转载&#xff1a;这个Python库超级棒啊&#xff0c;包含Louvain 算法、Girvan-Newman 算法等多种社区发现算法&#xff0c;还具有可视化功能_11205354的技术博客_51CTO博客 熟知社区发现算法&#xff0c;你不能错过这个 Python 库。它涵盖 Louvain 算法、Girvan-Newman 算法等…

操作系统复习2.3.4-进程同步问题

生产者-消费者 系统中有一组生产者进程和一组消费者进程 两者共享一个初始为空&#xff0c;大小为n的缓冲区 缓冲区没满&#xff0c;生产者才能放入 缓冲区没空&#xff0c;消费者才能取出 互斥地访问缓冲区 互斥要在同步之后&#xff0c;不然会导致想要同步&#xff0c;但由…