一、概述
應用場景:須要批次執行好多的mysql文件,逐項執行mysql資料庫的sql文件太費時。
偵錯環境:本機windows10,要執行資料庫在區域網路的centos伺服器上。
本機須要安裝mysql,我的版本是mysql5.7。
MYSQL下載:
#下載安裝後linux環境變量,在環境變數加上路徑後,前面用到mysql指令才可用。
1.偵測是否windows命令列知否支援mysql指令
在cmd中用命令列登入mysql,假如提示“不是內部或外部指令”,則須要配置一下
image.png
#須要將mysql安裝目錄下的bin目錄,加入到系統變數中,具體怎麼操作百度一下。
配置完成後,重新開啟cmd,可以直接用mysql命令列。
二、解決思路三、具體實作
1.遍歷目錄並產生新的批次執行sql檔batch.sql
##在根目錄新建sqlscripts資料夾,把所有待執行的腳本裝入sqlscripts資料夾,批次指令會依序遍歷並加入到新的sql。
#2.新建creatsql.bat
在根目錄新建一個txt檔案並重新命名為:creatsql.bat,之後把下邊的內容複製進去,這個批次會依序遍歷並加入到batch.sql。
@echo off & setlocal EnableDelayedExpansion del batch.sql echo 开始执行... @set source=. for %%i in (sqlscripts*.sql) do ( set file=%%~fi set file=!file:/=/! echo %source% !file! echo %source% !file! >> batch.sql ) echo 执行完毕! pause
注意:,我在測試的過程中遇見有編碼問題,因而所有的批次文件都是用notepad 編輯並更改了編碼格式為ANSI而不是utf-8;
3.新建update.bat
在根目錄新建一個txt檔案並重新命名為:update.bat,之後把下邊的內容複製進去。這個批次會聯接到資料庫,並執行新產生的batch.sql檔。
::echo off @echo off :: 指定MySQL安装路径 :: C: :: cd C:Program FilesMySQLMySQL Server 5.7bin :: 数据库主机 @set host=192.10.120.101 :: 数据库名称 @set db=test :: 用户名 @set userName=root :: 密码 @set password=123456 :: 获取文件夹所在绝对路径 @set basePath=%~dp0 :: 要执行的sql脚本 @set sqlpath=%basePath%batch.sql echo 开始执行数据库脚本... :: 连接MySQL数据库并执行sql脚本 -f 脚本执行过程中,出现错误继续执行 --default-character-set指定导入数据的编码(与数据库编码相同) mysql -f -h %host% -u %userName% --password=%password% %db% < %sqlpath% --default-character-set=gbk :: 执行完成后,不立刻关闭dos窗口 echo 所有脚本执行完毕。 del batch.sql pause
注意:須要更改此批次中的變數值linux 批次執行腳本,如主機,資料庫名稱/密碼等資訊。
4.執行批次處理
執行createsql.bat,並偵測batch.sql是否正確執行update.bat,偵測是否正常執行四、具體實作方案二
刚才介绍的思路是分为两步,先遍历并整合成一个sql脚本去执行。似乎还有一种方法就是逐字遍历的时侯linux 批量执行脚本,每取出一条就去执行一条。这样写一个批处理就可以搞定了。
具体实现:
新建update_each.bat,内容如下
::echo off @echo off :: 指定MySQL安装路径 :: C: :: cd C:Program FilesMySQLMySQL Server 5.7bin :: 数据库主机 @set host=192.10.120.101 :: 数据库名称 @set db=test :: 用户名 @set userName=root :: 密码 @set password=123456 :: 获取文件夹所在绝对路径 @set basePath=%~dp0 :: 要执行的sql脚本 @set sqlpath=%basePath%all.sql echo 开始执行数据库脚本... for %%i in (sqlscripts*.sql) do ( echo 正在执行 %%i 请稍后... echo set names utf8;>all.sql echo source %%i>>all.sql :: 连接MySQL数据库并执行sql脚本 -f 脚本执行过程中,出现错误继续执行 --default-character-set指定导入数据的编码(与数据库编码相同) mysql -f -h %host% -u %userName% --password=%password% %db% < %sqlpath% --default-character-set=gbk echo %%i 执行完毕。 ) del all.sql echo 所有脚本执行完毕。 pause
非常提示编码问题suse linux 下载,批处理命令是ANSI编码格式;sql脚本是UTF-8编码格式。
结束
以上是(每日一題)批量執行mysql資料庫的解決思路的詳細內容。更多資訊請關注PHP中文網其他相關文章!

學習Linux並不難。 1.Linux是一個開源操作系統,基於Unix,廣泛應用於服務器、嵌入式系統和個人電腦。 2.理解文件系統和權限管理是關鍵,文件系統是層次化的,權限包括讀、寫和執行。 3.包管理系統如apt和dnf使得軟件管理方便。 4.進程管理通過ps和top命令實現。 5.從基本命令如mkdir、cd、touch和nano開始學習,再嘗試高級用法如shell腳本和文本處理。 6.常見錯誤如權限問題可以通過sudo和chmod解決。 7.性能優化建議包括使用htop監控資源、清理不必要文件和使用sy

Linux管理員的平均年薪在美國為75,000至95,000美元,歐洲為40,000至60,000歐元。提升薪資可以通過:1.持續學習新技術,如雲計算和容器技術;2.積累項目經驗並建立Portfolio;3.建立職業網絡,拓展人脈。

Linux的主要用途包括:1.服務器操作系統,2.嵌入式系統,3.桌面操作系統,4.開發和測試環境。 Linux在這些領域表現出色,提供了穩定性、安全性和高效的開發工具。

互聯網運行不依賴單一操作系統,但Linux在其中扮演重要角色。 Linux廣泛應用於服務器和網絡設備,因其穩定性、安全性和可擴展性受歡迎。

Linux操作系統的核心是其命令行界面,通過命令行可以執行各種操作。 1.文件和目錄操作使用ls、cd、mkdir、rm等命令管理文件和目錄。 2.用戶和權限管理通過useradd、passwd、chmod等命令確保系統安全和資源分配。 3.進程管理使用ps、kill等命令監控和控制系統進程。 4.網絡操作包括ping、ifconfig、ssh等命令配置和管理網絡連接。 5.系統監控和維護通過top、df、du等命令了解系統運行狀態和資源使用情況。

介紹 Linux是一個強大的操作系統,由於其靈活性和效率,開發人員,系統管理員和電源用戶都喜歡。但是,經常使用長而復雜的命令可能是乏味的

Linux適用於服務器、開發環境和嵌入式系統。 1.作為服務器操作系統,Linux穩定高效,常用於部署高並發應用。 2.作為開發環境,Linux提供高效的命令行工具和包管理系統,提升開發效率。 3.在嵌入式系統中,Linux輕量且可定制,適合資源有限的環境。

簡介:通過基於Linux的道德黑客攻擊數字邊界 在我們越來越相互聯繫的世界中,網絡安全至關重要。 道德黑客入侵和滲透測試對於主動識別和減輕脆弱性至關重要


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

禪工作室 13.0.1
強大的PHP整合開發環境

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中