ZIP解壓版mysql8在Windows系統(tǒng)下自動安裝的bat腳本

[重要通告]如您遇疑難雜癥,本站支持知識付費(fèi)業(yè)務(wù),掃右邊二維碼加博主微信,可節(jié)省您寶貴時間哦!

由于mysql 8的 MSI 安裝包,自動把程序安裝到了C盤,木有注意到更改安裝位置的配置可以修改;故寫了一個腳本,用來安裝mysql 8的壓縮包??蓪?mysql8以及其 Data目錄 安裝到C盤以外的位置。

ZIP解壓版mysql8在Windows系統(tǒng)下自動安裝的bat腳本

正確的食用方式:把如下腳本文件保存問bat,下載官方的zip文件放在一起,直接運(yùn)行即可!

腳本文件直接放到mysql根目錄下,以管理員身份執(zhí)行即可。注意修改data路徑、端口號、設(shè)置復(fù)雜密碼,默認(rèn)my.ini僅供參考。

第一種方式:

@echo off

echo Please run as administrator.

set currentDir=%~dp0
set currentDir=%currentDir:\=/%
set basedir=%currentDir%
set mysqld="%currentDir%bin\mysqld"
set mysqladmin="%currentDir%bin\mysqladmin"

set port=3308
set rootPwd=Laoliang.net
set datadir=%currentDir%data/
set serviceName=mysql57

(
echo [mysql]
echo default-character-set=utf8
echo [mysqld]
echo character-set-server=utf8
echo port=%port%
echo basedir="%basedir%"
echo datadir="%datadir%"
echo max_connections=200
echo show_compatibility_56=1
echo default-storage-engine=INNODB
echo sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
) > "%basedir%\my.ini"

%mysqld% --initialize-insecure --user=mysql --explicit_defaults_for_timestamp --console

%mysqld% --install %serviceName%

net start %serviceName%

echo The initial password is empty, just press Enter.

%mysqladmin% -P %port% -u root -p password %rootPwd%

pause

第二種方式:

@echo off
:: 設(shè)置將要生成的文件的路徑
set base_dir=%cd%
set data_dir=%base_dir%\Data
set myini_file=%base_dir%\my.ini
set Uploads_dir=%base_dir%\Uploads

:: 設(shè)置一些變量默認(rèn)值
set agree=Y
set data_is_empty=0
set is_gen_start_file=N
set is_install_service=N
set is_clear_datadir=N
set is_add_path=N

:: 判斷腳本當(dāng)前所在的位置
%cd%/bin/mysql.exe --version >nul
if not %errorlevel%==0 (
echo 腳本執(zhí)行結(jié)束,請將此腳本移動到mysql程序的根目錄下再執(zhí)行(跟bin目錄同一級目錄)
goto end
)

:: 打印程序安裝說明
echo 使用說明:
echo 使用此腳本安裝mysql時,會將保存數(shù)據(jù)的Data目錄以及my.ini文件放在MySQL程序的根目錄下:
echo %base_dir%
echo 可以修改此腳本的路徑變量進(jìn)行重新指定路徑
set /p agree=如果同意,按任意鍵繼續(xù),按q鍵退出:
if /i %agree%==Q (
echo 退出安裝
goto end
) else if /i not %agree%==Q (
echo 腳本開始安裝mysql.......
)

:: 生成my.ini配置文件
if not exist %myini_file% (
echo [mysqld] >> %myini_file%
echo basedir=%cd% >> %myini_file%
echo datadir=%data_dir% >> %myini_file%
echo secure-file-priv=%cd%\Uploads >> %myini_file%
echo 生成my.ini文件:%myini_file%
) else (
echo %myini_file%文件已存在,即將使用該配置文件
)

:: 創(chuàng)建 Uploads 目錄
if not exist %Uploads_dir% (
md %Uploads_dir%
echo 創(chuàng)建Uploads目錄:%Uploads_dir%
) else (
echo %Uploads_dir%目錄已存在,跳過創(chuàng)建
)

:: 創(chuàng)建 Data 目錄
:md_data_dir
if not exist %data_dir% (
md %data_dir%
echo 創(chuàng)建Data目錄:%data_dir%
:: 創(chuàng)建了目錄后,直接進(jìn)行安裝
goto initialize_data
) else (
goto data_dir_check
)

:: 如果Data目錄已存在,則檢查Data目錄是否為空
:data_dir_check
for /f "tokens=* delims=" %%i in ('dir /b /a "%data_dir%"') do (
set /p is_clear_datadir=%data_dir%目錄已存在,并且目錄不為空,是否清空Data目錄(N不清空,Y清空):
goto clear_datadir
)

if %data_is_empty%==0 (
echo %data_dir%為空,即將初始化Data目錄進(jìn)行安裝
goto initialize_data
)

:clear_datadir
if /i %is_clear_datadir%==Y (
echo 正在清空%data_dir%
rd /s /q %data_dir%
goto :md_data_dir
) else if /i %is_clear_datadir%==N (
echo 跳過清空Data目錄,即將進(jìn)行不初化安裝
goto :install_service
) else (
goto :data_dir_check
)

:initialize_data
echo 正在初始化Mysql....
%base_dir%/bin/mysqld.exe --defaults-file=%myini_file% --initialize-insecure --console
echo MySQL初始化完畢!
echo ===================================================
echo 注意!root用戶的密碼為空!
echo ===================================================

:need_install_service
set /p is_install_service=是否需要將MySQL設(shè)置成為windows系統(tǒng)服務(wù)(需要管理員身份)(Y/N,默認(rèn)N):
if /i %is_install_service%==Y (
goto install_service
) else if /i %is_install_service%==N (
echo 已選擇無須將MySQL設(shè)置為系統(tǒng)服務(wù)
goto gen_start_file
) else (
goto need_install_service
)

:install_service
echo 正在將檢查windows服務(wù)......
:: sc query type^= all ^| findstr /i "SERVICE_NAME"
for /F "tokens=2" %%i in (' sc query type^= service state^= all ^| findstr /i "MySQL" ^| findstr /i "SERVICE_NAME" ') do ( 
for /F "tokens=* delims=" %%s in ('sc qc %%i ^| findstr /i "BINARY_PATH_NAME"' ) do (
echo %%s | find /i "%base_dir%" > NUL && echo MySQL已經(jīng)是Windows系統(tǒng)服務(wù) & goto gen_start_file
)
)
echo 正在將MySQL注冊成為Windows系統(tǒng)服務(wù)......
%base_dir%/bin/mysqld.exe --install MySQL8 --defaults-file=%myini_file%
sc config MySQL8 start=demand

:gen_start_file
set /p is_gen_start_file=是否需要在bin目錄下生成一鍵啟動腳本mysqld_start(Y/N,默認(rèn)N):
if /i %is_gen_start_file%==Y (
echo mysqld.exe --defaults-file=%myini_file% --console > %base_dir%/bin/mysqld_start.bat
) else (
echo 已選擇不生成一鍵啟動腳本。
)

:: 添加到用戶級的環(huán)境變量
set /p is_add_path=是否需要將MySQL添加到環(huán)境變量(Y/N,默認(rèn)N):
if /i %is_add_path%==N (
echo 已跳過添加MySQL到環(huán)境變量
) else (
set path | find /i "%base_dir%\bin" > nul || setx PATH "%PATH%;%base_dir%\bin"
echo 已添加環(huán)境變量
)

:end
echo 腳本執(zhí)行完畢?。?!

問題未解決?付費(fèi)解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信

所寫所說,是心之所感,思之所悟,行之所得;文當(dāng)無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!

支付寶贊助
微信贊助

免責(zé)聲明,若由于商用引起版權(quán)糾紛,一切責(zé)任均由使用者承擔(dān)。

您必須遵守我們的協(xié)議,如您下載該資源,行為將被視為對《免責(zé)聲明》全部內(nèi)容的認(rèn)可->聯(lián)系老梁投訴資源
LaoLiang.Net部分資源來自互聯(lián)網(wǎng)收集,僅供用于學(xué)習(xí)和交流,請勿用于商業(yè)用途。如有侵權(quán)、不妥之處,請聯(lián)系站長并出示版權(quán)證明以便刪除。 敬請諒解! 侵權(quán)刪帖/違法舉報/投稿等事物聯(lián)系郵箱:service@laoliang.net
意在交流學(xué)習(xí),歡迎贊賞評論,如有謬誤,請聯(lián)系指正;轉(zhuǎn)載請注明出處: » ZIP解壓版mysql8在Windows系統(tǒng)下自動安裝的bat腳本

發(fā)表回復(fù)

本站承接,網(wǎng)站推廣(SEM,SEO);軟件安裝與調(diào)試;服務(wù)器或網(wǎng)絡(luò)推薦及配置;APP開發(fā)與維護(hù);網(wǎng)站開發(fā)修改及維護(hù); 各財務(wù)軟件安裝調(diào)試及注冊服務(wù)(金蝶,用友,管家婆,速達(dá),星宇等);同時也有客戶管理系統(tǒng),人力資源,超市POS,醫(yī)藥管理等;

立即查看 了解詳情