前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mysql指令select,update,insert,drop,truncate+MySQL数据库备份恢复

Mysql指令select,update,insert,drop,truncate+MySQL数据库备份恢复

作者头像
老七Linux
发布2018-05-09 16:13:34
1.7K0
发布2018-05-09 16:13:34
举报

一、select:

1.1 选择db1中mysql库和user表:

代码语言:javascript
复制
mysql> use db1
Database changed
mysql> select count(*) from mysql.user;
+----------+
| count(*) |
+----------+
|        9 |
+----------+
1 row in set (0.03 sec)

1.2 查看mysql库中的详细内容:

代码语言:javascript
复制
mysql> select * from mysql.db\G;

建议大家在查找的时候,一定要有针对性,不要直接*,有时候数据库比较大,几百个G也很正常。这样既浪费资源也浪费时间!

1.3 查询db从mysql.db

代码语言:javascript
复制
mysql> select db from mysql.db;
+---------+
| db      |
+---------+
| test    |
| test\_% |
| zhdy01  |
| zhdy02  |
| zhdy03  |
+---------+
5 rows in set (0.01 sec)

1.4 查询db和user从mysql.db

代码语言:javascript
复制
mysql> select db,user from mysql.db;
+--------+
| user   |
+--------+
|        |
|        |
| zhdy01 |
| zhdy02 |
| zhdy03 |
+--------+
5 rows in set (0.00 sec)

1.5 模糊匹配;从mysql.db模糊查找一个ip地址。

代码语言:javascript
复制
mysql> select * from mysql.db where host like '127.0.%'\G;

二、Insert:

2.1 在db1.t1中插入一个值为1,abc

代码语言:javascript
复制
mysql> desc db1.t1;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id    | int(4)   | YES  |     | NULL    |       |
| name  | char(40) | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql> insert into db1.t1 values (1,'abc');
Query OK, 1 row affected (0.03 sec)

mysql> select * from db1.t1;
+------+------+
| id   | name |
+------+------+
|    1 | abc  |
+------+------+
1 row in set (0.00 sec)

2.2 更新一个表,把id为1的name全部改为aaa

代码语言:javascript
复制
mysql> update db1.t1 set name='aaa' where id =1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from db1.t1;
+------+------+
| id   | name |
+------+------+
|    1 | aaa  |
+------+------+
1 row in set (0.00 sec)

2.3 删除表内的内容,并且查看一下:

代码语言:javascript
复制
mysql> delete from db1.t1 where name='aaa';
Query OK, 1 row affected (0.01 sec)

mysql> select * from db1.t1;
Empty set (0.00 sec)

2.4 删除整个表内的所有数据truncate(有时候表内的数据比较多,一个一个地删除会浪费很长时间,我们需要一次性全部搞定):

代码语言:javascript
复制
mysql> truncate db1.t1;
Query OK, 0 rows affected (0.02 sec)

mysql> select * from db1.t1;
Empty set (0.00 sec)

2.5 删除整个表db1.t1(表+ 数据)

代码语言:javascript
复制
mysql> drop table db1.t1

2.6 删除一个db1库

代码语言:javascript
复制
drop database db1;

以后尽量不要使用drop和truncate,十分危险!


三、MySQL数据库备份恢复

如果不小心删除了一个数据库,那就是比较悲剧的事情了,如何在删除之前先备份呢?

3.1 备份mysql库到tmp目录下:

代码语言:javascript
复制
[[email protected]03 ~]# mysqldump -uroot -pzhangduanya mysql > /tmp/mysqlbak.sql
Warning: Using a password on the command line interface can be insecure.
[[email protected]03 ~]# ls /tmp/
mysqlbak.sql

3.2 创建一个mysql2数据库:

代码语言:javascript
复制
[[email protected]03 ~]# mysql -uroot -pzhangduanya -e "create database mysql2"
Warning: Using a password on the command line interface can be insecure.

3.3 从备份恢复一个数据库(注意区分,当恢复的时候只需要输入mysql即可):

代码语言:javascript
复制
[[email protected]03 ~]# mysql -uroot -pzhangduanya mysql2 < /tmp/mysqlbak.sql
Warning: Using a password on the command line interface can be insecure.

> use mysql2;

> show tables;

然后就查询到了我们恢复的表。

3.4 备份一个mysql库中的user数据表:

代码语言:javascript
复制
[root@zhdy-03 ~]# mysqldump -uroot -pzhangduanya mysql user > /tmp/user.sql

3.5 恢复一个user数据表到mysql中(这儿只需要写库的名字即可):

代码语言:javascript
复制
[root@zhdy-03 ~]# mysql -uroot -pzhangduanya mysql < /tmp/user.sql

当我们恢复的时候,加入一个数据库是存在的,首先会先drop掉,然后再次创建一个新的,数据表也是同理。

3.6 备份数据库(假如我们有很多的数据库,但是我们一个一个的去备份这样会浪费很长的时间,所以有时候我们需要一次性全部备份下来):

代码语言:javascript
复制
[root@zhdy-03 ~]# mysqldump -uroot -pzhangduanya -A > /tmp/mysql_all.sql
Warning: Using a password on the command line interface can be insecure.

[root@zhdy-03 ~]# ls /tmp/
mysql_all.sql

3.7 针对一个表结构进行备份(有时候我们并不需要表里面的数据,只是需要表结构,怎么操作呢? -d):

代码语言:javascript
复制
[[email protected]03 ~]# mysqldump -uroot -pzhangduanya -d mysql2 > /tmp/mysql2_tab.sql
Warning: Using a password on the command line interface can be insecure.

[[email protected]03 ~]# ls /tmp/
mysql2_tab.sql

其实我们使用mydqldump命令只是备份一些小的数据库,但是如果备份一个很大的数据库(几百G或者几T)就不适合了!速度非常慢,效率比较低,待会我就整理一下如何使用另外一个数据库指令备份比较大的数据库!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016/08/22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、select:
  • 二、Insert:
  • 三、MySQL数据库备份恢复
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档