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)にしておくと便利。
xxx
- ホーム
- プログラミングの覚書
- MySQLの覚書
- MySQLのコマンド