PowerShell install 一键部署mariadb10.11

news2024/12/27 13:16:01

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)mysql workbench文档

download

官网download

参考

参考

前提条件

  • 开启wmi,配置网卡,参考 

mariadb 10.11 一键自动化部署编写

  • 最终实现在线下载mariadb二进制包,解压重命名,创建数据目录,创建数据配置my.ini环境变量设置,初始化数据库,创建库,创建用户,创建用户权限,远程连接设置,版本获取,安装完成删除包,防火墙设置。
  • C:\mariadb 安装位置
  • C:\mariadb\data 数据目录
  • root/Report@123 mariadb数据库登录管理员
  • mar/Report@123 此账号是自定义创建的管理员,生产环境删除哦
  • mariadb_test 创建的临时数据库
  • C:\mariadb\data\my.ini 数据库配置文件
  • mysqldump.exe -uroot -pReport@123 --lock-all-tables --all-databases --events > c:\mysql_dump.sql 备份数据库操作
  • mysql -u root -pReport@123 < c:\mysql_dump.sql 导入数据库
  • mysql_install_db.exe 安装参数参考
  • if 判断是否存在psql 命令 if (-not (Get-Command mysql -ErrorAction SilentlyContinue)) 
  • 依赖VisualC++ ,所有包含历史版下载
  • increase indent:Tab
  • decrease indent:Shift+Tab
powershell-install-mariadb.ps1
<# Powershell Install mariadb
+++++++++++++++++++++++++++++++++++++++++++++++++++++
+  _____                       _____ _          _ _ +
+ |  __ \                     / ____| |        | | |+
+ | |__) |____      _____ _ _| (___ | |__   ___| | |+
+ |  ___/ _ \ \ /\ / / _ \ '__\___ \| '_ \ / _ \ | |+
+ | |  | (_) \ V  V /  __/ |  ____) | | | |  __/ | |+
+ |_|   \___/ \_/\_/ \___|_| |_____/|_| |_|\___|_|_|+
+ +++++++++++++++++++++++++++++++++++++++++++++++++++

# mysql_install_db.exe install Basic
https://mariadb.com/kb/en/mysql_install_dbexe/

# Powershell Install mariadb
# .\powershell-install-mariadb.ps1
#> 

function Install-mariadb {
	if (-not (Get-Command mysql -ErrorAction SilentlyContinue)) {
        if ($?) {
			
	$drive = "c:"
	$mariadb_temporary = "mariadb_temporary"
	$mariadb = "mariadb"
	$mariadb_data = "data"
	
	#mariadb configuration files
	$mysql_root_password = "Repot@123"
	$mysql_port = "3306"
	$mysql_my_ini = "my.ini"
	$mysql_socket = "mysql.sock"

	#mariadb packag
	$mariadb_zip = "mariadb-10.11.3-winx64.zip"
	$vc_redist_64 = "vc_redist.x64.exe"
	$vc_redist_86 = "vc_redist.x86.exe"
	$mariadb_decompression_directory = "mariadb-10.11.3-winx64"

	Write-Host "Create a directory for storing mariadb temporary" -ForegroundColor Green
	New-Item -ItemType Directory $drive\$mariadb_temporary

	$mariadb_related_download = @(
	"https://archive.mariadb.org/mariadb-10.11.3/winx64-packages/$mariadb_zip",
	"https://aka.ms/vs/17/release/$vc_redist_64",
	"https://aka.ms/vs/17/release/$vc_redist_86"
	)

	foreach ($url in $mariadb_related_download) {
	$fileName = Split-Path $url -Leaf
	$filePath = Join-Path $drive\$mariadb_temporary $fileName
	Invoke-WebRequest -Uri $url -OutFile $filePath
}
	Write-Host "install vc_redist x86 x64" -ForegroundColor Green
	Start-Process -FilePath "$drive\$mariadb_temporary\$vc_redist_64" -ArgumentList {/q /install} -Wait
	Start-Process -FilePath "$drive\$mariadb_temporary\$vc_redist_86" -ArgumentList {/q /install} -Wait

	Write-Host "Unzip the mariadb package" -ForegroundColor Green
	Expand-Archive -Path $drive\$mariadb_temporary\$mariadb_zip -DestinationPath $drive\

	Write-Host "Rename the mariadb folder name" -ForegroundColor Green
	Rename-Item -Path $drive\$mariadb_decompression_directory -NewName $mariadb

	Write-Host "Create a directory for storing database data" -ForegroundColor Green
	New-Item -ItemType Directory "$drive\$mariadb\$mariadb_data"

	Write-Host "Create mariadb environment variables" -ForegroundColor Green
	$env:path += ";$drive\$mariadb\bin"
	setx PATH $env:path /M

	Write-Host "mysql ini configuration" -ForegroundColor Green
$functionText = @"
[client]
port=$mysql_port
plugin-dir=$drive\$mariadb\lib\plugin
default-character-set=utf8mb4

[mysqld]
datadir=$drive\$mariadb\$mariadb_data
basedir=$drive\$mariadb
port=$mysql_port
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
lower_case_table_names=1

[mysql]
default-character-set=utf8mb4
"@

	New-Item "$drive\$mariadb\$mysql_my_ini" -type file -force -value $functionText

	Write-Host "initialize mariadb" -ForegroundColor Green
    mysql_install_db --config=$drive\$mariadb\$mysql_my_ini --datadir=$drive\$mariadb\$mariadb_data --socket=$mysql_socket --service=$mariadb --password=$mysql_root_password

	Write-Host "start mariadb" -ForegroundColor Green
	Start-Service $mariadb

	Write-Host "Viewing mysql process port" -ForegroundColor Green
	netstat -ano|findstr $mysql_port
	Test-NetConnection -ComputerName localhost -Port $mysql_port | Select-Object -ExpandProperty TcpTestSucceeded
	Get-Service -Name $mariadb | Select-Object -ExpandProperty Status

	Write-Host "check mariadb version" -ForegroundColor Green
	mysql -V

	Write-Host "Allow root to log in remotely" -ForegroundColor Green
	mysql -uroot -p$mysql_root_password -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Report@123' WITH GRANT OPTION;"

	Write-Host "Create a user and assign the user login permission, super user permission, super role permission, database creation permission, replication permission, and backup permission" -ForegroundColor Green
	mysql -uroot -p$mysql_root_password -e "CREATE DATABASE mariadb_test;"
	mysql -uroot -p$mysql_root_password -e "CREATE USER mar@'%' IDENTIFIED BY 'Report@123';"
	mysql -uroot -p$mysql_root_password -e "GRANT ALL PRIVILEGES ON *.* TO mar@'%' WITH GRANT OPTION;"
	mysql -uroot -p$mysql_root_password -e "GRANT SUPER ON *.* TO mar@'%';"

	Write-Host "firewall mariadb port" -ForegroundColor Green
	New-NetFirewallRule -DisplayName $mariadb -Direction Outbound -profile any -LocalPort $mariadb_port -Protocol TCP -Action Allow
	New-NetFirewallRule -DisplayName $mariadb -Direction Inbound -profile any -LocalPort $mariadb_port -Protocol TCP -Action Allow
  
	Write-Host "Delete related mariadb packages and temporary directories" -ForegroundColor Green
	Remove-Item -Path "$drive\$mariadb_temporary\*.exe", "$drive\$mariadb_temporary", "$drive\$mariadb\$mysql_my_ini" -Recurse -Force

            Write-Host "The mariadb Install Success..." -ForegroundColor Green
        } else {
            Write-Host "The mariadb Install Failed..." -ForegroundColor Red
            exit 1
        }
    } else {
        Write-Host "The mariadb Install already..." -ForegroundColor Yellow
    }
}

function Main {
	Install-mariadb
}

Main

执行安装mariadb

.\powershell-install-mariadb.ps1

输出结果展示

 

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

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

相关文章

ChatGPT 国内镜像网站大全(含GPT-4.0版本)之什么年代还在写传统文章。

前言&#xff1a; 临近期末&#xff0c;大量水课的节课作业都是论文&#xff0c;一篇就是几千字&#xff0c;这对于还要复习专业课的我们可以说是压力巨大&#xff1a;心理健康论文&#xff0c;安全教育论文&#xff0c;大学语文论文&#xff0c;书法赏析论文&#xff0c;劳动…

小议C++函数签名与模板返回类型

题记&#xff1a;什么事情都要追问一个为什么&#xff0c;真正理解了为什么&#xff0c;才能活学活用。 代码1 下面的代码能编译通过吗&#xff1f; #include <stdio.h> #include <stdlib.h>class X { public:int *get() { return new int(); }double *get() { r…

MATLAB矩阵的分解函数与案例举例

系列文章目录 MATLAB当中线性方程组、不定方程组、奇异方程组、超定方程组的介绍 MATLAB语句实现方阵性质的验证 MATLAB绘图函数的相关介绍——海底测量、二维与三维图形绘制​​​​​​ MATLAB求函数极限的简单介绍 文章目录 前言 1. 奇异值分解&#xff08;SVD&#x…

C++类和对象-4

在上篇C类和对象的博客中&#xff0c;我们讲述了析构函数、拷贝构造函数、浅拷贝和深拷贝的内容&#xff0c;我们紧接上文&#xff0c;开始讲述接下来的文章。 目录 1.this指针 1.1引入 1.2内容 1.3特征 1.4用法 2.静态成员 2.1内容 2.2静态数据成员 2.3静态成员函数…

Vue.js 中的国际化支持是什么?如何进行国际化支持?

Vue.js 中的国际化支持是什么&#xff1f;如何进行国际化支持&#xff1f; Vue.js 是一款流行的前端框架&#xff0c;它提供了许多方便的工具和 API&#xff0c;用于构建交互式的用户界面。其中&#xff0c;国际化支持是 Vue.js 中重要的一部分&#xff0c;它可以让我们轻松地…

如何强制删除文件夹?这样操作就能搞定!

案例&#xff1a;我想删掉一些没有用的文件夹&#xff0c;释放一些电脑内存&#xff0c;但是我发现&#xff0c;有些文件夹并不能直接被删除。怎样才能删除这些文件夹&#xff1f;有没有小伙伴有解决的办法。 在使用电脑过程中&#xff0c;我们可能会遇到一些无法正常删除文件夹…

空间计算时代来临:苹果Vision Pro震撼上市,探索真实与虚拟的新边界

目录 前言Vision Pro的外观设计Vision Pro的交互方式Vision Pro 硬件配置Vision Pro 上市时间及销售价格Vision Pro与传统XR设备不同点总结其它资料下载 前言 苹果公司在2023年6月6日的WWDC23主题演讲中正式发布了传闻已久的头显产品——Vision Pro。WWDC&#xff0c;全称为“…

LLM Accelerator:使用参考文本无损加速大语言模型推理

编者按&#xff1a;如今&#xff0c;基础大模型正在诸多应用中发挥着日益重要的作用。大多数大语言模型的训练都是采取自回归的方式进行生成&#xff0c;虽然自回归模型生成的文本质量有所保证&#xff0c;但却导致了高昂的推理成本和长时间的延迟。由于大模型的参数量巨大、推…

被App包围 苹果Vision Pro将你推入空间“大屏”

2小时&#xff0c;这是2023年苹果开发者大会&#xff08;WWDC&#xff09;首日发布会的直播总时长&#xff0c;仅YouTube上&#xff0c;就有483.9万次观看。发布会开启时&#xff0c;北京时间是6月6日凌晨1点&#xff0c;众多科技博主串流直播了这场发布会。 苹果CEO蒂姆库克引…

3.2 继续完善的Vue.js响应式系统

前文提要&#xff1a; 3.0 响应式系统的设计与实现 3.1 一个稍微完善的Vue.js响应式系统 1、解决副作用函数的死循环问题 在解决了分支的切换的问题&#xff0c;此时还有一个代码死循环的问题&#xff0c;其这个死循环很容易触发&#xff0c;如下代码&#xff1a; const dat…

Netty Incubator Codec QUIC 0.0.41.Final 发布

导读Netty Incubator Codec QUIC 是一款基于 QUIC 协议的编解码器&#xff0c;为 Netty 提供了 QUIC 协议的支持。 近日&#xff0c;该团队发布了 0.0.41.Final 版本&#xff0c;这是一个错误修复版本&#xff0c;主要包括以下变化: 允许在派发前通过添加到读完队列来合并刷新…

嵌入式软件测试笔记3 | 嵌入式软件测试开发的多V模型

3 | 嵌入式软件测试开发的多V模型 1 简单的多V模型2 迭代与并行开发2.1 开发模型2.2 嵌入式开发过程的复杂性 3 多V模型中的测试活动3.1 测试活动和因素3.2 模型开发周期中与测试相关的元素分配3.3 原型开发周期中与测试相关的元素分配3.4 最终产品开发周期中与测试相关的元素分…

NineData x 华为云正式上线

6月5日&#xff0c;NineData 企业级 SQL 开发平台正式成为华为云“联营联运”商品。通过联营联运模式&#xff0c;双方将在产品、解决方案和生态等多个方面开展深度合作&#xff0c;共同提供高效、智能、安全的数据管理服务&#xff0c;帮助客户轻松构建一站式云端数据库管理平…

【随想录】一篇水文

前排许愿池: 我是一个没有梦想的咸鱼捏 自从知道成电优营了也不给offer之后 遂开始摆烂了(哈哈) 以及看了一下数据 好像前期存的资本够多的话 后面还是能混混的 however,已经快过去2/3了 前排致谢: 感谢好人一姐的助力 果然人是靠别人活着的 或者说伟人是站在巨人…

基于显扬科技3D视觉相机的芯片外观检测系统

Part.1 行业背景 电子元器件制造业是我国的支柱产业之一&#xff0c;具有产量大、技术投入高的特点&#xff0c;因此产品质量把控与生产成本优化是电子行业关注的发展重点。 芯片作为电子元器件中的核心组成部分&#xff0c;在现代社会被广泛应用&#xff0c;在芯片生产制造过…

Redis经典五大数据类型源码及底层实现

Redis经典五大数据类型源码及底层实现 一 面试题引入二 Redis数据类型的底层数据结构三 redis是字典数据库&#xff0c;KV键值对到底是什么&#xff1f;3.1 怎样实现键值对&#xff08;key-value&#xff09;数据库的&#xff1f;3.2 redisObject结构的作用3.3 RedisObject各字…

微信支付商户接入指引(企业)

目录 一、官方指引二、申请规则三、申请流程&#xff08;一&#xff09;提交资料&#xff08;二&#xff09;签署协议&#xff08;三&#xff09;绑定场景 一、官方指引 https://kf.qq.com/faq/210423UrIRB7210423by6fQn.html 二、申请规则 1、微信支付商家仅面向企业、个体…

三分钟告诉你录音实时转写软件哪个好

真的不想录音笔记实时转写软件有哪些吗 录音实时转写软件免费有哪些&#xff1f;录音实时转写软件推荐 实时录音转文字软件哪个好&#xff1f;录音实时转写软件分享 录音实时转写软件哪个好&#xff1f;录音实时转写软件盘点 让你知道视频配音文字转语音软件有哪些 让你不…

耗时1周整理了网络安全学习路线,非常详细!

前言 这一期就出一个怎么学习网络安全的学习路线和方法&#xff0c;觉得有用的话三连收藏下 首先咱们聊聊&#xff0c;学习网络安全方向通常会有哪些问题 1、打基础时间太长 学基础花费很长时间&#xff0c;光语言都有几门&#xff0c;有些人会倒在学习linux系统及命令的路上…

selenium基础语法

文章目录 selenium基础语法1.定位页面元素2.元素的操作1) 模拟键盘输入(send_keys)2) 点击操作(click)3) 清除去对象输入的文本内容(clear)4) 获取文本(gettext) 3. 等待4. 信息打印5. 窗口6. 导航7. 弹窗8. 鼠标和弹窗9.选择框10.文件上传11.屏幕截图 selenium基础语法 1.定位…