ZIP解壓版mysql8在Windows系統下自動安裝的bat腳本
[重要通告]如您遇疑難雜癥,本站支持知識付費業務,掃右邊二維碼加博主微信,可節省您寶貴時間哦!
由于mysql 8的 MSI 安裝包,自動把程序安裝到了C盤,木有注意到更改安裝位置的配置可以修改;故寫了一個腳本,用來安裝mysql 8的壓縮包。可將 mysql8以及其 Data目錄 安裝到C盤以外的位置。
ZIP解壓版mysql8在Windows系統下自動安裝的bat腳本
正確的食用方式:把如下腳本文件保存問bat,下載官方的zip文件放在一起,直接運行即可!
腳本文件直接放到mysql根目錄下,以管理員身份執行即可。注意修改data路徑、端口號、設置復雜密碼,默認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 :: 設置將要生成的文件的路徑 set base_dir=%cd% set data_dir=%base_dir%\Data set myini_file=%base_dir%\my.ini set Uploads_dir=%base_dir%\Uploads :: 設置一些變量默認值 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 :: 判斷腳本當前所在的位置 %cd%/bin/mysql.exe --version >nul if not %errorlevel%==0 ( echo 腳本執行結束,請將此腳本移動到mysql程序的根目錄下再執行(跟bin目錄同一級目錄) goto end ) :: 打印程序安裝說明 echo 使用說明: echo 使用此腳本安裝mysql時,會將保存數據的Data目錄以及my.ini文件放在MySQL程序的根目錄下: echo %base_dir% echo 可以修改此腳本的路徑變量進行重新指定路徑 set /p agree=如果同意,按任意鍵繼續,按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%文件已存在,即將使用該配置文件 ) :: 創建 Uploads 目錄 if not exist %Uploads_dir% ( md %Uploads_dir% echo 創建Uploads目錄:%Uploads_dir% ) else ( echo %Uploads_dir%目錄已存在,跳過創建 ) :: 創建 Data 目錄 :md_data_dir if not exist %data_dir% ( md %data_dir% echo 創建Data目錄:%data_dir% :: 創建了目錄后,直接進行安裝 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目錄進行安裝 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目錄,即將進行不初化安裝 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設置成為windows系統服務(需要管理員身份)(Y/N,默認N): if /i %is_install_service%==Y ( goto install_service ) else if /i %is_install_service%==N ( echo 已選擇無須將MySQL設置為系統服務 goto gen_start_file ) else ( goto need_install_service ) :install_service echo 正在將檢查windows服務...... :: 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已經是Windows系統服務 & goto gen_start_file ) ) echo 正在將MySQL注冊成為Windows系統服務...... %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,默認N): if /i %is_gen_start_file%==Y ( echo mysqld.exe --defaults-file=%myini_file% --console > %base_dir%/bin/mysqld_start.bat ) else ( echo 已選擇不生成一鍵啟動腳本。 ) :: 添加到用戶級的環境變量 set /p is_add_path=是否需要將MySQL添加到環境變量(Y/N,默認N): if /i %is_add_path%==N ( echo 已跳過添加MySQL到環境變量 ) else ( set path | find /i "%base_dir%\bin" > nul || setx PATH "%PATH%;%base_dir%\bin" echo 已添加環境變量 ) :end echo 腳本執行完畢!!!
問題未解決?付費解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信
所寫所說,是心之所感,思之所悟,行之所得;文當無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!
賞
支付寶贊助
微信贊助
免責聲明,若由于商用引起版權糾紛,一切責任均由使用者承擔。
您必須遵守我們的協議,如您下載該資源,行為將被視為對《免責聲明》全部內容的認可->聯系老梁投訴資源 LaoLiang.Net部分資源來自互聯網收集,僅供用于學習和交流,請勿用于商業用途。如有侵權、不妥之處,請聯系站長并出示版權證明以便刪除。
敬請諒解! 侵權刪帖/違法舉報/投稿等事物聯系郵箱:service@laoliang.net
意在交流學習,歡迎贊賞評論,如有謬誤,請聯系指正;轉載請注明出處: » ZIP解壓版mysql8在Windows系統下自動安裝的bat腳本