mysql本体の場所を探す

	$ which mysql
	/c/xampp/mysql/bin/mysql
	

最大許可パケットを調べる max_allowed_packet

	$ mysql -uroot -pneko cake_demo -N -e "show variables like 'max_allowed_packet'"
	max_allowed_packet      1048576
	

ミラーDB作成シェル

	#!/bin/sh
	
	echo 'ミラーDB作成シェル'
	echo '@date 2019-7-5 @version 1.0'
	pwd
	
	user='root'
	pw='xxxx'
	db_name1='animal_park' #元DB名
	db_name2='animal_park2' #作成DB名
	
	echo "$db_name1をエクスポートします。"
	mysqldump -u$user -p$pw $db_name1 > $db_name1.sql
	echo "$db_name1.sqlとしてエクスポートしました。"
	
	mysql -u$user -p$pw -e "
		CREATE DATABASE IF NOT EXISTS $db_name2 COLLATE utf8mb4_general_ci
		"
	echo "データベース$db_name2を作成しました。"
	
	mysql -u $user -p$pw -B $db_name2 < $db_name1.sql
	echo "$db_name1.sqlを$db_name2へインポートしました。";
	
	echo "すべての作業が完了しました。"
	cmd /k
	

「wp_」から始まるテーブルをすべて削除するシェル

#!/bin/sh
echo '「wp_」から始まるテーブルをすべて削除します。'

pw='hogehoge' #パスワード
db_name1='animal_park' #DB名
mysql -u root -p$pw -e "SHOW TABLES FROM $db_name1" | grep wp_* | xargs -I "@@" mysql -u root -p$pw -e "DROP TABLE $db_name1.@@;"

echo '処理完了'
cmd /k
	

「wp_」から始まるテーブルを列挙するシェル

#!/bin/sh
echo '「wp_」から始まるテーブル名を列挙します。'

pw='hogehoge' #パスワード
db_name1='animal_park' #DB名
mysql -uroot -p$pw -e "SHOW TABLES FROM $db_name1" | grep wp_* | xargs -I "@@" echo "テーブル名→ $db_name1.@@"

echo '処理完了'
cmd /k

PowerShellのシェルファイルであるps1ファイルを実行する方法

PowerShellのシェルファイルはスクリプトファイルと呼ばれ、拡張子はps1です。

デフォルトではPowerShellはスクリプトの実行を許可していません。そのため、スクリプトを実行する前に、実行ポリシーを変更する必要があるかもしれません。
実行ポリシーを変更するには、管理者権限でPowerShellを開き、次のコマンドを実行します。
Set-ExecutionPolicy RemoteSigned

「C:\backup_db\db_backup.ps1」スクプトファイルを実行する。
以下のコマンドで C:\backup_db\db_backup.ps1 スクリプトを実行できます。

powershell
& "C:¥backup_db¥db_backup.ps1"
(.ps1)を実行するには、PowerShellコンソールを開き、スクリプトファイルへのパスを入力します。ただし、その際にスクリプトファイルへのパスの前に & (アンパサンド) オペレータを付けることが必要です。


PowerShellで、MySQLに登録されている、すべてのデータベースをループし、sqlファイルとしてエクスポートする方法

 # MySQLの設定
$mysqlPath = "C:¥xampp¥mysql¥bin"
$username = "root"
$password = ""

# バックアップディレクトリの設定
$backupDirectory = "C:¥backup_db"

# 現在の日付を取得
$date = Get-Date -Format "yyyyMMdd"

# MySQLのデータベース一覧を取得
$databases = & "$mysqlPath¥mysql.exe" --user=$username --password=$password --execute="SHOW DATABASES;"

foreach ($db in $databases)
{
    # システムデータベースをスキップ
    if ($db -eq "information_schema" -or $db -eq "performance_schema" -or $db -eq "mysql" -or $db.StartsWith("_"))
    {
        continue
    }
    
    # データベースをダンプ
    Write-Host "Dumping database: $db"
    & "$mysqlPath¥mysqldump.exe" --force --opt --user=$username --password=$password --databases $db > "$backupDirectory¥$date.$db.sql"
}
    
スクリプトファイル(.ps)にしておくと便利。