批處理自動(dòng)安裝Mysql與Redis的實(shí)現(xiàn)示例
前言
在全新環(huán)境中安裝MySQL與Redis操作是挺麻煩的,于是就想使用腳本來自動(dòng)安裝,使用批處理進(jìn)行一步到位的安裝,后面還能使用工具進(jìn)行打包成exe可執(zhí)行文件,一鍵安裝,最后能夠更好的部署項(xiàng)目到windows系統(tǒng)的服務(wù)器。
代碼與實(shí)現(xiàn)
本次是安裝mysql8.0和redis5.0,安裝在windows系統(tǒng)。
整體思路
流程很簡(jiǎn)單,需要獲取安裝的路徑,文件所在路徑,配置環(huán)境變量,安裝服務(wù),修改mysql密碼。接下來一步一步解析。
安裝mysql
1)、下載mysql壓縮包
首先需要下載免安裝的MySQL壓縮包,https://dev.mysql.com/downloads/mysql/
下載完后解壓,就會(huì)看到以下目錄,接下來我們需要?jiǎng)?chuàng)建data文件 以及 my.ini的配置文件!
2)、添加配置文件my.ini
當(dāng)然,配置文件也是可以通過dos指令輸入進(jìn)去的,只是為了方便,我們這里可以通過事先配置好存放進(jìn)去,詳細(xì)配置可以看如下:
[mysql] default-character-set=utf8 [mysqld] port=13306 basedir=D:\Desktop\tested\mysql-8.0.30 datadir=D:\Desktop\tested\mysql-8.0.30\data max_connections=200 max_connect_errors=10 character-set-server=utf8 default-storage-engine=INNODB [client] port=13306 default-character-set=utf8
basedir:mysql解壓所在的文件路徑
datadir:數(shù)據(jù)存放的地址
注:要注意的是在輸入路徑地址的時(shí)候要使用’//’
3)、命令代碼
前置工作準(zhǔn)備完成,接下來就可以看一下批處理命令。
①、設(shè)置安裝路徑
首先就是對(duì)變量的過去與設(shè)置
set cds=%~dp0 set mysql_path=%cds%mysql-8.0.30
%~dp0:獲取當(dāng)前的路勁地址(絕對(duì)路徑)
②、配置環(huán)境變量
將mysql\bin下的路徑設(shè)置到path環(huán)境變量里面,后面是輸出此時(shí)path的環(huán)境變量,以下代碼包括設(shè)置了redis的環(huán)境變量。
echo 配置環(huán)境變量 echo. setx path "%redis_path%;%mysql_path%\bin;%path%" /m IF ERRORLEVEL 1 ( echo. echo 配置環(huán)境變量失敗,即將退出 echo. goto END ) echo. echo 打印環(huán)境變量 echo. echo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> set str=%path% echo 所有變量:%str% echo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo.
③、安裝mysql服務(wù)
先設(shè)置MySQL服務(wù)的名字,為了防止存在相同的服務(wù),將設(shè)置好的服務(wù)名稱的服務(wù)通過net stop %service_name%
停掉,并且將mysql的data刪除(這部需要謹(jǐn)慎處理),接著對(duì)mysql進(jìn)行初始化,接著通過mysqld.exe去安裝服務(wù)。
:: 設(shè)置mysql服務(wù)名字:mysql82 set service_name=mysql82 net stop %service_name% echo >>>>刪除原DATA :: 刪除原本的MySQL數(shù)據(jù) rd /s /q %mysql_path%\data echo >>>>刪除原MYSQL服務(wù) %mysql_path%\bin\mysqld.exe --remove %service_name% echo >>>>初始化DATA md %mysql_path%\data echo >>>>安裝MYSQL SERVICE %mysql_path%\bin\mysqld.exe --initialize --user=mysql --console %mysql_path%\bin\mysqld.exe --install %service_name%
④、修改密碼
mysql8.0之后的版本,不能通過修改mysql.user 表來修改用戶密碼,取消了password函數(shù),使用authentication_string=password("123456")
去修改密碼會(huì)報(bào)錯(cuò)。按照只是用解壓縮+配置文件.ini來安裝是需要先通過初始化之后生成的隨機(jī)臨時(shí)密碼登錄,在進(jìn)行修改密碼。對(duì)于這個(gè)修改密碼,我也是找了很久,看了很多篇文章,最后發(fā)現(xiàn)了解決方案。
解決辦法:
首先有一種,通過mysqld --console --skip-grant-tables --shared-memory的方法啟動(dòng)服務(wù)器,在是使用修改密碼命令去改變密碼??墒?,這種在使用批處理的時(shí)候遇到了許多問題,因?yàn)槭切率?,?duì)指令這些邏輯還不是很清楚,因?yàn)槭褂眠@種方式啟動(dòng)MySQL,原來的思路是,等它啟動(dòng)服務(wù)后,用新的命令窗口去執(zhí)行修改密碼,接著關(guān)閉新窗口往下繼續(xù)進(jìn)行,但是會(huì)出現(xiàn)這條啟動(dòng)服務(wù)的任務(wù)不會(huì)自動(dòng)完成。通過跳過密碼驗(yàn)證就會(huì)使得無法往下繼續(xù)執(zhí)行,需要使用新的窗口來進(jìn)行修改密碼。這也就會(huì)導(dǎo)致接下來的命令就會(huì)無法執(zhí)行。
接著后面使用第二種方式,需要在外部新建一個(gè)配置文件,用來進(jìn)行修改密碼的。使用-init-file重置MySQL Root密碼。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
思路也很簡(jiǎn)單,只要使用新的窗口來執(zhí)行這條語(yǔ)句,在把這個(gè)新的窗口關(guān)掉,就能夠恢復(fù)初始窗口繼續(xù)執(zhí)行。
start "更改密碼" cmd /c "%mysql_path%\bin\mysqld.exe --user=mysql --init-file=%cds%init-file.ini --console" timeout /t 5 echo >>>>終止mysqld進(jìn)程 taskkill /f /im mysqld.exe
start:執(zhí)行命令,”更改密碼“是命令窗口的標(biāo)題,后面是使用mysqld
timeout /t 5 :倒計(jì)時(shí)5秒
taskkill /f /im mysqld.exe:殺死這個(gè)進(jìn)程
詳細(xì)方案可以看一下這位大佬寫的,我的靈感也是得之于他:如何在MySQL 8.0中重置Root密碼 - 騰訊云開發(fā)者社區(qū)-騰訊云
⑤、按照完畢
安裝完畢就可以去執(zhí)行啟動(dòng)mysql服務(wù)
net start %service_name%
安裝redis
安裝redis就更簡(jiǎn)單了,就直接使用安裝指令就行
cd /d%redis_path% redis-server.exe --service-install redis.windows.conf --service-name %redis_server_name% --loglevel verbose echo 啟動(dòng)redis服務(wù) redis-server.exe --service-start --service-name %redis_server_name%
代碼附件
以下是所有的代碼
@echo off chcp 65001 title 安裝MYSQL與Redis echo. echo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo 開始安裝MYSQL8.0 echo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo. set cds=%~dp0 set mysql_path=%cds%mysql-8.0.30 set redis_path=%cds%Redis5.0 echo. echo 數(shù)據(jù)庫(kù)安裝路徑:%mysql_path% echo Redis安裝路徑:%redis_path% echo. echo 配置環(huán)境變量 echo. setx path "%redis_path%;%mysql_path%\bin;%path%" /m IF ERRORLEVEL 1 ( echo. echo 配置環(huán)境變量失敗,即將退出 echo. goto END ) echo. echo 打印環(huán)境變量 echo. echo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> set str=%path% echo 所有變量:%str% echo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo. echo >>>>正在安裝MYSQL服務(wù) echo. :: 設(shè)置mysql服務(wù)名字:mysql82 set service_name=mysql82 net stop %service_name% echo. echo >>>>刪除原DATA echo. :: 刪除原本的MySQL數(shù)據(jù) rd /s /q %mysql_path%\data echo. echo >>>>刪除原MYSQL服務(wù) echo. %mysql_path%\bin\mysqld.exe --remove %service_name% echo. echo >>>>初始化DATA echo. md %mysql_path%\data echo. echo >>>>安裝MYSQL SERVICE echo. %mysql_path%\bin\mysqld.exe --initialize --user=mysql --console %mysql_path%\bin\mysqld.exe --install %service_name% echo >>>>關(guān)閉mysql服務(wù) net stop %service_name% :: 修改密碼 echo >>>>執(zhí)行更改密碼 start "更改密碼" cmd /c "%mysql_path%\bin\mysqld.exe --user=mysql --init-file=%cds%init-file.ini --console" timeout /t 5 echo >>>>終止mysqld進(jìn)程 taskkill /f /im mysqld.exe net start %service_name% echo. echo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo 啟動(dòng)MYSQL SERVICE,SERVICE NAME 》mysql82 echo. echo 修改密碼:root echo. echo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo. echo 安裝redis :: 設(shè)置redis服務(wù)名字:redis5 set redis_server_name=redis5 echo. echo ****正在安裝REDIS服務(wù)**** echo. echo 停止原REDIS服務(wù) echo. net stop %redis_server_name% echo 刪除redis服務(wù) sc delete %redis_server_name% echo. cd /d%redis_path% redis-server.exe --service-install redis.windows.conf --service-name %redis_server_name% --loglevel verbose echo 啟動(dòng)redis服務(wù) redis-server.exe --service-start --service-name %redis_server_name% :END
到此這篇關(guān)于批處理自動(dòng)安裝Mysql與Redis的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)批處理自動(dòng)安裝Mysql與Redis內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
命令行實(shí)現(xiàn)MAC與IP地址綁定 ip mac綁定 如何綁定mac地址
一般手上沒有軟件,就可以使用這命令行實(shí)現(xiàn)MAC與IP地址綁定2008-01-01用bat和 reg實(shí)現(xiàn)關(guān)閉局域網(wǎng)共享
這篇文章主要是為大家介紹一下通過reg關(guān)閉局域網(wǎng)共享的代碼,其實(shí)這個(gè)cmd命令就是一個(gè)注冊(cè)表的導(dǎo)入功能,直接雙擊運(yùn)行reg文件也是可以的2007-10-10Windows使用cmd命令行查看、修改、刪除與添加環(huán)境變量
這篇文章介紹了Windows使用cmd命令行查看、修改、刪除與添加環(huán)境變量的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06根據(jù)當(dāng)前目錄下的文件生成網(wǎng)址列表的bat
最近我需要獲取當(dāng)前目錄下的圖片文件。因?yàn)閳D片都有放到服務(wù)器里面,這時(shí)候又需要填寫一個(gè)完整的網(wǎng)址路徑,因?yàn)閳D片過多,所以我們通過bat實(shí)現(xiàn)了,下面分享下2013-05-05Windows和Linux下定時(shí)刪除某天前的文件的腳本
無論是在windows下還是linux下,很多的日志文件如果不定時(shí)刪除會(huì)充滿硬盤,所以可以分別寫個(gè)腳本定時(shí)處理一下2014-08-08