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

一、select:

1.1 选择db1中mysql库和user表:

mysql> use db1
Database changed
mysql> select count(*) from mysql.user;
+----------+
| count(*) |
+----------+
|        9 |
+----------+
1 row in set (0.03 sec)

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

mysql> select * from mysql.db\G;

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

1.3 查询db从mysql.db

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

mysql> select db,user from mysql.db;
+--------+
| user   |
+--------+
|        |
|        |
| zhdy01 |
| zhdy02 |
| zhdy03 |
+--------+
5 rows in set (0.00 sec)

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

mysql> select * from mysql.db where host like '127.0.%'\G;

二、Insert:

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

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

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 删除表内的内容,并且查看一下:

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(有时候表内的数据比较多,一个一个地删除会浪费很长时间,我们需要一次性全部搞定):

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(表+ 数据)

mysql> drop table db1.t1

2.6 删除一个db1库

drop database db1;

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


三、MySQL数据库备份恢复

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

3.1 备份mysql库到tmp目录下:

[[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数据库:

[[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即可):

[[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数据表:

[root@zhdy-03 ~]# mysqldump -uroot -pzhangduanya mysql user > /tmp/user.sql

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

[root@zhdy-03 ~]# mysql -uroot -pzhangduanya mysql < /tmp/user.sql

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

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

[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):

[[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)就不适合了!速度非常慢,效率比较低,待会我就整理一下如何使用另外一个数据库指令备份比较大的数据库!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏青青天空树

mysql用户创建及授权

一、 创建用户:  命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';  说明:usern...

11810
来自专栏乐沙弥的世界

安装MySQL样本数据库Sakila

    通常情况下对于一个全新的MySQL服务器,没有任何数据供我们测试和使用。对此,MySQL为我们提供了一些样本数据库,我们可以基于这些数据库作基本的操作以...

10930
来自专栏帘卷西风的专栏

关于mysql常用时间函数

转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog) 

8720
来自专栏运维技术迷

MySQL中DDL、DML、DCL的那些语句

DDL(data definition language):数据定义语言 DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化...

45180
来自专栏菩提树下的杨过

mysql 学习笔记

以前主要使用oracle做数据库,现在换成mysql了,发现不一样的地方还是挺多的,记录一下: 一、centos上的yum install方式安装  完全卸...

22770
来自专栏乐沙弥的世界

MySQL 用户与权限管理

    MySQL权限系统的主要功能是证实连接到一台给定主机的用户,并且赋予该用户在数据库上的相关DML,DQL权限。MySQL存取控制包含2个阶段,一是服务器...

38010
来自专栏Ken的杂谈

CentOS 7下InfluxDB部署与使用入门

InfluxDB里存储的数据被称为时间序列数据,InfluxDB存储方式跟传统关系型数据库不同的是:传统关系型数据库通过数据库+表+字段组织数据,InfluxD...

1.1K40
来自专栏Aox Lei

Mycat基本使用教程

路径在: /usr/local/mycat/conf/rule.xml function必须在tableRule的下面, 否则会报错找不到

61120
来自专栏LanceToBigData

MySQL(十一)之触发器

上一篇介绍的是比较简单的视图,其实用起来是相对比较简单的,以后有什么更多的关于视图的用法,到时候在自己补充。接下来让我们一起了解一下触发器的使用! 一、触发器概...

28580
来自专栏奇梦博客

CentOS下mysql数据库常用命令总结 MySQL 参数配置

17110

扫码关注云+社区

领取腾讯云代金券