批處理自動安裝Mysql與Redis的實現(xiàn)示例
前言
在全新環(huán)境中安裝MySQL與Redis操作是挺麻煩的,于是就想使用腳本來自動安裝,使用批處理進行一步到位的安裝,后面還能使用工具進行打包成exe可執(zhí)行文件,一鍵安裝,最后能夠更好的部署項目到windows系統(tǒng)的服務(wù)器。
代碼與實現(xiàn)
本次是安裝mysql8.0和redis5.0,安裝在windows系統(tǒng)。
整體思路
流程很簡單,需要獲取安裝的路徑,文件所在路徑,配置環(huán)境變量,安裝服務(wù),修改mysql密碼。接下來一步一步解析。
安裝mysql
1)、下載mysql壓縮包
首先需要下載免安裝的MySQL壓縮包,https://dev.mysql.com/downloads/mysql/
下載完后解壓,就會看到以下目錄,接下來我們需要創(chuàng)建data文件 以及 my.ini的配置文件!
2)、添加配置文件my.ini
當然,配置文件也是可以通過dos指令輸入進去的,只是為了方便,我們這里可以通過事先配置好存放進去,詳細配置可以看如下:
[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ù)存放的地址
注:要注意的是在輸入路徑地址的時候要使用’//’
3)、命令代碼
前置工作準備完成,接下來就可以看一下批處理命令。
①、設(shè)置安裝路徑
首先就是對變量的過去與設(shè)置
set cds=%~dp0 set mysql_path=%cds%mysql-8.0.30
%~dp0:獲取當前的路勁地址(絕對路徑)
②、配置環(huán)境變量
將mysql\bin下的路徑設(shè)置到path環(huán)境變量里面,后面是輸出此時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刪除(這部需要謹慎處理),接著對mysql進行初始化,接著通過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")
去修改密碼會報錯。按照只是用解壓縮+配置文件.ini來安裝是需要先通過初始化之后生成的隨機臨時密碼登錄,在進行修改密碼。對于這個修改密碼,我也是找了很久,看了很多篇文章,最后發(fā)現(xiàn)了解決方案。
解決辦法:
首先有一種,通過mysqld --console --skip-grant-tables --shared-memory的方法啟動服務(wù)器,在是使用修改密碼命令去改變密碼。可是,這種在使用批處理的時候遇到了許多問題,因為是新手,對指令這些邏輯還不是很清楚,因為使用這種方式啟動MySQL,原來的思路是,等它啟動服務(wù)后,用新的命令窗口去執(zhí)行修改密碼,接著關(guān)閉新窗口往下繼續(xù)進行,但是會出現(xiàn)這條啟動服務(wù)的任務(wù)不會自動完成。通過跳過密碼驗證就會使得無法往下繼續(xù)執(zhí)行,需要使用新的窗口來進行修改密碼。這也就會導(dǎo)致接下來的命令就會無法執(zhí)行。
接著后面使用第二種方式,需要在外部新建一個配置文件,用來進行修改密碼的。使用-init-file重置MySQL Root密碼。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
思路也很簡單,只要使用新的窗口來執(zhí)行這條語句,在把這個新的窗口關(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進程 taskkill /f /im mysqld.exe
start:執(zhí)行命令,”更改密碼“是命令窗口的標題,后面是使用mysqld
timeout /t 5 :倒計時5秒
taskkill /f /im mysqld.exe:殺死這個進程
詳細方案可以看一下這位大佬寫的,我的靈感也是得之于他:如何在MySQL 8.0中重置Root密碼 - 騰訊云開發(fā)者社區(qū)-騰訊云
⑤、按照完畢
安裝完畢就可以去執(zhí)行啟動mysql服務(wù)
net start %service_name%
安裝redis
安裝redis就更簡單了,就直接使用安裝指令就行
cd /d%redis_path% redis-server.exe --service-install redis.windows.conf --service-name %redis_server_name% --loglevel verbose echo 啟動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ù)庫安裝路徑:%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進程 taskkill /f /im mysqld.exe net start %service_name% echo. echo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> echo 啟動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 啟動redis服務(wù) redis-server.exe --service-start --service-name %redis_server_name% :END
到此這篇關(guān)于批處理自動安裝Mysql與Redis的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)批處理自動安裝Mysql與Redis內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
命令行實現(xiàn)MAC與IP地址綁定 ip mac綁定 如何綁定mac地址
一般手上沒有軟件,就可以使用這命令行實現(xiàn)MAC與IP地址綁定2008-01-01用bat和 reg實現(xiàn)關(guān)閉局域網(wǎng)共享
這篇文章主要是為大家介紹一下通過reg關(guān)閉局域網(wǎng)共享的代碼,其實這個cmd命令就是一個注冊表的導(dǎo)入功能,直接雙擊運行reg文件也是可以的2007-10-10Windows使用cmd命令行查看、修改、刪除與添加環(huán)境變量
這篇文章介紹了Windows使用cmd命令行查看、修改、刪除與添加環(huán)境變量的方法,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧2022-06-06根據(jù)當前目錄下的文件生成網(wǎng)址列表的bat
最近我需要獲取當前目錄下的圖片文件。因為圖片都有放到服務(wù)器里面,這時候又需要填寫一個完整的網(wǎng)址路徑,因為圖片過多,所以我們通過bat實現(xiàn)了,下面分享下2013-05-05