Heim > System-Tutorial > LINUX > (Tägliche Frage) Lösungsideen für die Batch-Ausführung der MySQL-Datenbank

(Tägliche Frage) Lösungsideen für die Batch-Ausführung der MySQL-Datenbank

WBOY
Freigeben: 2024-03-02 09:31:18
nach vorne
669 Leute haben es durchsucht

1. Übersicht

Anwendungsszenario: Viele MySQL-Dateien müssen stapelweise ausgeführt werden. Das Ausführen der SQL-Dateien der MySQL-Datenbank einzeln ist zu zeitaufwändig.

Debugging-Umgebung: Lokales Windows 10, die auszuführende Datenbank befindet sich auf dem Centos-Server im LAN.

Mysql muss lokal installiert werden. Meine Version ist mysql5.7.

MYSQL-Download:

linux 批量执行脚本_linux批量执行的脚本_批量操作linux

Nach dem Herunterladen und Installieren der Linux-Umgebungsvariablen kann nach dem Hinzufügen des Pfads zu den Umgebungsvariablen der zuvor verwendete MySQL-Befehl verwendet werden.

1. Überprüfen Sie, ob die Windows-Befehlszeile den MySQL-Befehl unterstützt

Verwenden Sie die Befehlszeile, um sich in cmd bei MySQL anzumelden. Wenn die Meldung „Kein interner oder externer Befehl“ angezeigt wird, müssen Sie ihn konfigurieren

image.png

批量操作linux_linux 批量执行脚本_linux批量执行的脚本

Sie müssen das bin-Verzeichnis unter dem MySQL-Installationsverzeichnis zu den Systemvariablen hinzufügen. Bitte erfahren Sie, wie Sie Baidu bedienen.

Nachdem die Konfiguration abgeschlossen ist, öffnen Sie cmd erneut und verwenden Sie direkt die MySQL-Befehlszeile.

2. Lösungsideen 3. Konkrete Umsetzung

1. Durchsuchen Sie das Verzeichnis und generieren Sie eine neue Batch-Ausführungs-SQL-Datei „batch.sql“

Erstellen Sie einen neuen SQLScripts-Ordner im Stammverzeichnis und laden Sie alle auszuführenden Skripte in den SQLScripts-Ordner. Die Stapelverarbeitungsbefehle werden nacheinander durchlaufen und dem neuen SQL hinzugefügt.

linux 批量执行脚本_linux批量执行的脚本_批量操作linux

2. Erstellen Sie eine neue createsql.bat

Erstellen Sie eine neue TXT-Datei im Stammverzeichnis, benennen Sie sie in „creatsql.bat“ um und kopieren Sie dann den folgenden Inhalt hinein. Dieser Batch-Prozess wird nacheinander durchlaufen und zu „batch.sql“ hinzugefügt.

@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
Nach dem Login kopieren

Hinweis: Da ich während des Tests auf Kodierungsprobleme gestoßen bin, wurden alle Batchdateien mit Notepad++ bearbeitet und das Kodierungsformat auf ANSI statt auf utf-8 geändert;

3. Erstellen Sie eine neue update.bat

Erstellen Sie eine neue TXT-Datei im Stammverzeichnis, benennen Sie sie um in: update.bat und kopieren Sie dann den folgenden Inhalt hinein. Dieser Batch-Prozess stellt eine Verbindung zur Datenbank her und führt die neu generierte Datei „batch.sql“ aus.

::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
Nach dem Login kopieren

Hinweis: Sie müssen die Variablenwerte in diesem Batch-Linux-Batch-Ausführungsskript ändern, z. B. Host, Datenbankname/Passwort und andere Informationen.

4. Stapelverarbeitung ausführen

Führen Sie „createsql.bat“ aus und prüfen Sie, ob „batch.sql“ ordnungsgemäß ausgeführt wird.

刚才介绍的思路是分为两步,先遍历并整合成一个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
Nach dem Login kopieren

非常提示编码问题suse linux 下载,批处理命令是ANSI编码格式;sql脚本是UTF-8编码格式。

结束

Das obige ist der detaillierte Inhalt von(Tägliche Frage) Lösungsideen für die Batch-Ausführung der MySQL-Datenbank. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:itcool.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage