专栏首页Laoqi's Linux运维专列Mysql指令select,update,insert,drop,truncate+MySQL数据库备份恢复

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 条评论
登录 后参与评论

相关文章

  • CentOS 6_LAMP/LNMP–mysql的免编译安装

    老七Linux
  • Mysql(双主)主主架构配置

    老七Linux
  • Mysql5.6 免编译安装

    Mysql安装 : 3 种安装方式: rpm 源码 二进制免编译(一定要从官网下载) 二进制免编译包好处: 我们不需要花太多的时间去编译。 可以自定义去配置安装...

    老七Linux
  • [docker]安装Mysql

    贰叁壹小窝
  • docker安装mysql及navicat远程连接

    华创信息技术
  • macOS 安装 mysql

    打开下载页面 https://dev.mysql.com/downloads/mysql/5.7.html ,下载镜像安装文件。

    我是一条小青蛇
  • Linux环境下Mysql开启远程访问权限

    如何通过Window的数据库可视化工具远程连接装在Linux上的Mysql呢?可以按照以下步骤逐一确认!

    小菠萝测试笔记
  • Linux基础(day61)

    17.1 MySQL主从介绍 MySQL主从介绍 ---- MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据...

    运维小白
  • linux下安装mysql5.7步骤

    链接:https://pan.baidu.com/s/1HyVFBJLlQPKGMOyXpao0cw 提取码:q2a6 下载完成之后通过 winscp 工具...

    萌萌哒的瓤瓤
  • MySQL安装

    石的三次方

扫码关注云+社区

领取腾讯云代金券