shell批量导入MySQL数据库,批量删除数据库
他可以直接用mysql_workbench 6以上的版本直接导入文件夹的方式来导入多个sql文件. 但是在我的服务器上不可能为了批量导这个sql单
因为项目协同开发, 同事发了一个项目的sql文件过来, 打开一看是个目录, 里面有上百个数据库.每个数据库作为一个单独的文件.
每个sql文件里面都有
CREATE DATABASE IF NOT EXISTS `XXXX`
USE `XXXX`;
他可以直接用mysql_workbench 6以上的版本直接导入文件夹的方式来导入多个sql文件. 但是在我的服务器上不可能为了批量导这个sql单独装个GUI的workbench.
于是写个shell吧, 改里面的host,username和password为你对应的即可.
dbname这里,默认是sample, mysql里面的sample表. 实际数据不是导入到这里面的, 因为我要导入的sql文件里面都已经有了创建db. 如果你是要导入到某一个数据库的多个表, 可以修改dbname为你对应的数据库名
#!/bin/bash
#author rainysia
#date 2014-11-14 10:26:27
set -e
LC_ALL=C
LANG=C
unset TZ
TZBase=$(LC_ALL=C TZ=UTC0 date -R)
UTdate=$(LC_ALL=C TZ=UTC0 date -d "$TZBase")
TZdate=$(unset TZ ; LANG=C date -d "$TZBase")
file_path="/home/db/test/" #要导入的sql文件夹
host="192.168.85.123" #要导入的mysql主机
username="dbroot" #mysql的用户名
password="db1t#2w$3r@4#t" #mysql的密码
dbname="sample" #mysql的数据库名
now=$(date "+%s") #计时
mysql_source(){
for file_name in `ls -A $1`
do
seg_start_time=$(date "+%s")
if [ -f "$1$file_name" ];then
command="source $1$file_name"
mysql -h${host} -u${username} -p${password} ${dbname} -e "$command"
echo "source:" \"$1$file_name\" "is ok, It takes " `expr $(date "+%s") - ${seg_start_time}` " seconds"
fi
done
echo "All sql is done! Total cost: " `expr $(date "+%s") - ${now}` " seconds"
}
echo "Universal Time is now: $UTdate."
echo "Local time is now: $TZdate."
mysql_source $file_path
测试一下,
root@debian:/home/sh# ./mysql_source.sh
Universal Time is now: Fri Nov 14 03:10:49 UTC 2014.
Local time is now: Fri Nov 14 11:10:49 CST 2014.
source: "/home/db/test/hml2.sql" is ok, It takes 18 seconds
source: "/home/db/test/hml3.sql" is ok, It takes 19 seconds
source: "/home/db/test/hml4.sql" is ok, It takes 18 seconds
All sql is done! Total costs: 55 seconds
接着发现可以导入了, 然后同事又需要重装某个app, 需要删除其中某个数据库下的所有表. 因为她权限不够, 不能够直接删除数据库, 只能一个一个手动drop table. 但是有2000多个table.
本来打算使用
SELECT CONCAT('DROP TABLE IF EXISTS ', table_name, ';') FROM information_schema.tables WHERE table_schema='cs_china_111数据库名';
的方式来删除所有table, 发现没有生效.
于是还是还是使用上面的shell. 把路径随便换个, 现在先去把需要drop的table的sql给写出来.
先去导出这个数据库,在终端下使用mysqldump dbroot是我的数据库用户名, cs_china_1111是我要导出的数据库, -d -add-drop-table 是不导出数据只导出结构
#mysqldump -udbroot -p cs_china_1111 -d --add-drop-table > cs_china_1111.sql
然后使用grep来过滤一次, 因为导出的sql里面含有了drop table
#find ./ -name "cs_china_1111.sql" | xargs grep "DROP TABLE IF" > cs_china_1111_drop_table.sql
接下来用之前的shell, 把dbname 改成需要删除的数据库名, 运行一下即可.
--------------------------------------分割线 --------------------------------------
Ubuntu 14.04下安装MySQL
《MySQL权威指南(原书第2版)》清晰中文扫描版 PDF
Ubuntu 14.04 LTS 安装 LNMP Nginx\PHP5 (PHP-FPM)\MySQL
Ubuntu 14.04下搭建MySQL主从服务器
Ubuntu 12.04 LTS 构建高可用分布式 MySQL 集群
Ubuntu 12.04下源代码安装MySQL5.6以及Python-MySQLdb
MySQL-5.5.38通用二进制安装
--------------------------------------分割线 --------------------------------------
本文永久更新链接地址:
,
ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









この記事では、MySQLのAlter Tableステートメントを使用して、列の追加/ドロップ、テーブル/列の名前の変更、列データ型の変更など、テーブルを変更することについて説明します。

記事では、証明書の生成と検証を含むMySQL用のSSL/TLS暗号化の構成について説明します。主な問題は、セルフ署名証明書のセキュリティへの影響を使用することです。[文字カウント:159]

記事では、MySQLワークベンチやPHPMyAdminなどの人気のあるMySQL GUIツールについて説明し、初心者と上級ユーザーの機能と適合性を比較します。[159文字]

記事では、MySQLで大規模なデータセットを処理するための戦略について説明します。これには、パーティション化、シャード、インデックス作成、クエリ最適化などがあります。

INNODBのフルテキスト検索機能は非常に強力であり、データベースクエリの効率と大量のテキストデータを処理する能力を大幅に改善できます。 1)INNODBは、倒立インデックスを介してフルテキスト検索を実装し、基本的および高度な検索クエリをサポートします。 2)一致を使用してキーワードを使用して、ブールモードとフレーズ検索を検索、サポートします。 3)最適化方法には、単語セグメンテーションテクノロジーの使用、インデックスの定期的な再構築、およびパフォーマンスと精度を改善するためのキャッシュサイズの調整が含まれます。

この記事では、ドロップテーブルステートメントを使用してMySQLのドロップテーブルについて説明し、予防策とリスクを強調しています。これは、バックアップなしでアクションが不可逆的であることを強調し、回復方法と潜在的な生産環境の危険を詳述しています。

記事では、外部キーを使用してデータベース内の関係を表すことで、ベストプラクティス、データの完全性、および避けるべき一般的な落とし穴に焦点を当てています。

この記事では、クエリパフォーマンスを強化するために、PostgreSQL、MySQL、MongoDBなどのさまざまなデータベースでJSON列にインデックスの作成について説明します。特定のJSONパスのインデックス作成の構文と利点を説明し、サポートされているデータベースシステムをリストします。
