I. 概要
アプリケーション シナリオ: 多くの mysql ファイルをバッチで実行する必要があるため、mysql データベースの SQL ファイルを 1 つずつ実行するのは時間がかかりすぎます。
デバッグ環境:ローカルwindows10、実行するデータベースはLAN内のcentosサーバー上にあります。
Mysql をローカルにインストールする必要があります。私のバージョンは mysql5.7 です。
MYSQL ダウンロード:
Linux 環境変数をダウンロードしてインストールした後、環境変数にパスを追加すると、以前使用した mysql コマンドが使用できるようになります。
1. Windows コマンド ラインが mysql コマンドをサポートしているかどうかを確認します
コマンドラインを使用して、cmd で mysql にログインします。「内部コマンドまたは外部コマンドではありません」というプロンプトが表示された場合は、それを構成する必要があります
image.png
mysql インストールディレクトリ配下の bin ディレクトリをシステム変数に追加する必要があります。Baidu の操作方法を確認してください。
設定が完了したら、cmd を再度開き、mysql コマンド ラインを直接使用します。
2. ソリューションのアイデア 3. 具体的な実装
1. ディレクトリを走査し、新しいバッチ実行 SQL ファイルbatch.sql
を生成します。ルート ディレクトリに新しい sqlscripts フォルダを作成し、実行するすべてのスクリプトを sqlscripts フォルダにロードします。バッチ コマンドは、新しい SQL を順に走査して追加します。
2.新しいcreatesql.batを作成します
ルート ディレクトリに新しい txt ファイルを作成し、creatsql.bat に名前を変更し、次の内容をコピーします。このバッチ プロセスは順に実行され、batch.sql に追加されます。
リーリー
注: テスト中にエンコードの問題が発生したため、すべてのバッチ ファイルをメモ帳で編集し、エンコード形式を utf-8 ではなく ANSI に変更しました。
3. 新しい update.bat を作成しますルート ディレクトリに新しい txt ファイルを作成し、名前を update.bat に変更し、次の内容をそのファイルにコピーします。このバッチ プロセスはデータベースに接続し、新しく生成されたバッチ.sql ファイルを実行します。
リーリー
注: このバッチ
linux バッチ実行スクリプト 内の変数値 (ホスト、データベース名/パスワード、その他の情報など) を変更する必要があります。
4. バッチ処理の実行createsql.bat を実行し、batch.sql が正しく update.bat を実行するか確認し、正常に実行されるか確認 IV. 具体的な実装計画 2
刚才介绍的思路是分为两步,先遍历并整合成一个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 中国語 Web サイトの他の関連記事を参照してください。