他可以直接用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通用二进制安装
--------------------------------------分割线 --------------------------------------
本文永久更新链接地址:
,
mysqlviewshavelimitations:1)supportallsqloperations、制限、dataManipulationswithjoinsorubqueries.2)それらは、特にパフォーマンス、特にパルフェクソルラージャターセット

reperusermanmanagementInmysqliscialforenhancingsecurationsinginuring databaseaperation.1)usecreateusertoaddusers、指定connectionsourcewith@'localhost'or@'% '。

mysqldoes notimposeahardlimitontriggers、しかしpracticalfactorsdeTerminetheireffectiveuse:1)serverconufigurationStriggermanagement; 2)complentiggersincreaseSystemload;

はい、それはssafetostoreblobdatainmysql、butonsiderheSeCactors:1)Storagespace:blobscanconsumesificantspace.2)パフォーマンス:パフォーマンス:大規模なドゥエットブロブスメイズ階下3)backupandrecized recized recized recize

PHP Webインターフェイスを介してMySQLユーザーを追加すると、MySQLI拡張機能を使用できます。手順は次のとおりです。1。MySQLデータベースに接続し、MySQLI拡張機能を使用します。 2。ユーザーを作成し、CreateUserステートメントを使用し、パスワード()関数を使用してパスワードを暗号化します。 3. SQLインジェクションを防ぎ、MySQLI_REAL_ESCAPE_STRING()関数を使用してユーザー入力を処理します。 4.新しいユーザーに権限を割り当て、助成金ステートメントを使用します。

mysql'sblobissuitable forstoringbinarydatawithinarationaldatabase、whileenosqloptionslikemongodb、redis、andcassandraofferferulesions forunstructureddata.blobissimplerbutcanslowdowdowd withwithdata

toaddauserinmysql、使用:createuser'username '@' host'identifidedby'password '; here'showtodoitsely:1)chosehostcarefilytoconを選択しますTrolaccess.2)setResourcelimitslikemax_queries_per_hour.3)usestrong、uniquasswords.4)endforcessl/tlsconnectionswith

toavoidcommonMonmistakeswithStringDatatypesinmysql、undultingStringTypenuste、choosetherightType、andManageEncodingandCollationsEttingtingive.1)Usecharforfixed-LengthStrings、Varcharforaible Length、AndText/Blobforlardata.2)setCurrectCherts


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。
