、IDEツールが導入します
本番環境には、mysqlコマンドラインを使用することをお勧めしますが、我々のテストの便宜のために、あなたはIDEツールを使用することができます
ダウンロードリンクします。https://pan.baidu.com/s/1bpo5mqj
二、MySQLのデータバックアップ
#1。物理バックアップ:ダイレクトコピー大規模なデータベース環境用のデータベースファイル(
データ、制御ファイル、アーカイブログファイル、など)。
しかし、Windowsのような異種システムに戻ることはできません。#2論理バックアップ:バックアップは、テーブル、データベース、および中小データベース、比較的低い効率のためのSQL INSERTステートメントによって実行される他の操作を内蔵しています。#3。エクスポートテーブル:テキストファイルにインポートするテーブル。
IDEツールは、バックアップのために使用することができ、ダンプSQLをクリックし..その後、私たちは論理バックアップmysqldumpをの実装を見て焦点を合わせます
1.論理バックアップはmysqldumpをを使用して実装しました
#構文:
#mysqldumpを-h -uユーザ名-pパスワードサーバのデータベース名> .SQLバックアップファイル
あなたは-hは、他のユーザーがログオンしたとき、あなたは-hサーバ記述する必要は、書くことができない場合、ローカルにログオンしている
#を例:
1.シングルには、バックアップ
のmysqldump -uroot - p123456 day47> E:\\ day47.sql
のmysqldump -urootを- p123456テストクラス従業員の部門> Eを:\\ TEST-ce.sql
2.複数のバックアップ
mysqldumpを-uroot -p123456を-テストデータベースzuoye DB2> E:\\ dbzzz.sql
をバックアップ3.すべてのライブラリ
のmysqldump -uroot -p123456 --all-データベース> E ://all.sql
2.論理バックアップを復元します
1 。で回復ログがない場合には
C:Users \ユーザー\管理 > MySQLの-uroot -テストp123456 < day47.sql
データベースday47をドロップし、
テスト・データベースをドロップし、
データベースday47を作成し、
データベース作成のテストを、
MySQLの -uroot - p123456 day47 < day47 .SQL
のMySQL - -urootテスト<day47.sql p123456 #はまた、あなたのライブラリの彼らの新しい空のデータベースのバックアップ追加できる
方法をへ.mysql回復ログの後
のMySQL > ; DB1を使用する
MySQLの >セットSQL_LOG_BIN = 0; #は、ログを設定します書き込みログが1に等しい場合、ゼロに等しいことが書いていません。一般的に設定していない
のMySQL> 出典Eを:\\ day47.sql;
3.注:バックアップ/場合は、単一のライブラリを復元するには、あなたがファイルのSQL変更することができます
DROPデータベースをIF 学校EXISTS。
データベースの学校を作成します。
学校を使用します。
あなたは、我々はそれを行うことができ、常にああ参照するにはログインしていません回復時間を表示したくない場合は、回復は、ログインしていない前に、あなたは直接にログが表示されません。
SQL文の実行にログインする必要はありません
MySQLの-uroot - E 「のテストを使用し、テーブルを表示し、」 #の注意を二重引用符という
のMySQL-uroot - E 「表示データベース; 」 #は、二重引用符でセミコロンに注意してください。
注:
1.完全に(新しいデータベースとして、または元のデータベースを削除)クリーンな環境に復元
2.すべてのSQL文の復元時には、バイナリログに記録するべきではありません
表3.エクスポートとインポート
一、表的导出 use day47 select * from userinfo; select * from userinfo into outfile 'E:\\userinfo.txt' fields terminated by ',' lines terminated by '\n'; #将字段之间按逗号分开,行之间用'\n'分开 这样写的话报错了。新版本不支持你这样直接指定路径写,为了保证数据的安全。 如果一旦有黑客拿到sql权限的时候,就把你的数据就给拿走了。你的数据就不安全了 那么怎么解决这个错误呢? show variables like '%secure%'; 解决方法:更改配置文件 [mysqld] secure_file_priv='E:\\'
二、表的导入 use bak; show tables; create table user(id int primary key auto_increment,name char(20),age int,depart_id int); desc user; load data infile 'E:\\userinfo.txt' into table user fields terminated by ','
lines terminated by '\n';#导入表
4.数据库迁移
务必保证在相同版本之间迁移 # mysqldump -h 源IP -uroot -p123 --databases db1 | mysql -h 目标IP -uroot -p456
一、IDE工具介绍
生产环境还是推荐使用mysql命令行,但为了方便我们测试,可以使用IDE工具
下载链接:https://pan.baidu.com/s/1bpo5mqj
二、MySQL数据备份
#1. 物理备份: 直接复制数据库文件,适用于大型数据库环境(
如数据文件、控制文件、归档日志文件等)。
但不能恢复到异构系统中如Windows。
#2. 逻辑备份: 备份的是建表、建库、插入等操作所执行SQL语句,适用于中小型数据库,效率相对较低。
#3. 导出表: 将表导入到文本文件中。
也可以用IDE工具来实现备份,点击转储SQL..,那我们重点来研究一下MySQLdump实现的逻辑备份
1.使用mysqldump实现逻辑备份
#语法:
# mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql
当你是本地登录的时候这个-h可以不写,当其他用户登录时,就得写上-h 服务器
#示例:
1.单库备份
mysqldump -uroot -p123456 day47 > E:\\day47.sql
mysqldump -uroot -p123456 test class employee department > E:\\test-c-e.sql
2.多库备份
mysqldump -uroot -p123456 --databases test db2 zuoye > E:\\dbzzz.sql
3.备份所有库
mysqldump -uroot -p123456 --all-databases > E://all.sql
2.恢复逻辑备份
方法1.在没有登录进去之前恢复
C:\Users\Administrator>mysql -uroot -p123456 test < day47.sql
drop database day47;
drop database test;
create database day47;
create database test;
mysql -uroot -p123456 day47 < day47.sql
mysql -uroot -p123456 test < day47.sql #也可以在自己新建的空数据库里添加你备份的库
方法2.mysql登录进去后恢复
mysql> use db1;
mysql> SET SQL_LOG_BIN=0; #设置日志,如果写日志就等于1,不写就等于0。一般不用设置
mysql> source E:\\day47.sql;
3.注:如果备份/恢复单个库时,可以修改sql文件
DROP database if exists school;
create database school;
use school;
在没有登录之前恢复是,如果你想看恢复了没有的时候是不是每次都要登录进去看看啊,那么我们可以这样做,就不用登录直接查看 了。
不用再登录进去执行sql语句了
mysql -uroot -e "use test;show tables;" #注意是双引号
mysql -uroot -e "show databases;" #注意分号在双引号里面
注意事项:
1. 完全恢复到一个干净的环境(例如新的数据库或删除原有的数据库)
2. 恢复期间所有SQL语句不应该记录到binlog中
3.表的导出与导入
一、表的导出 use day47 select * from userinfo; select * from userinfo into outfile 'E:\\userinfo.txt' fields terminated by ',' lines terminated by '\n'; #将字段之间按逗号分开,行之间用'\n'分开 这样写的话报错了。新版本不支持你这样直接指定路径写,为了保证数据的安全。 如果一旦有黑客拿到sql权限的时候,就把你的数据就给拿走了。你的数据就不安全了 那么怎么解决这个错误呢? show variables like '%secure%'; 解决方法:更改配置文件 [mysqld] secure_file_priv='E:\\'
二、表的导入 BAKを使用します。 ショーのテーブル。 テーブルのユーザー(ID int型主キーAUTO_INCREMENT、名char(作成 20 )、年齢int型、depart_idのint)を、 DESCユーザー。LOAD DATA INFILE 「E:\\ USERINFO.TXT」「」で終了し、テーブルのユーザーフィールドに
は『\ n』をによって終了行。#导入表
4.データベースの移行
確かに、同じバージョン間で移行することを #1 のmysqldump -hソースIP -uroot -p123 --databases DB1 |のmysql -hターゲットIP -uroot -p456