MySQL中的常用工具实例汇总,中的常用工具

一.概述

    mysqlshow顾客端查找工具,能超级快地查找存在什么样数据库,数据库中的表,表中的列或索引,和mysql顾客端工具很临近,不过有个别天性是mysql客户端工具所不有所的。
  mysqlshow的利用方法如下:
图片 1

    如若不加任何接纳,暗中同意意况下,会展示全数数据库,上边将展现当前mysql中装有数据库。
图片 2

mysql(顾客端连接工具卡塔尔国

mysql[options][database]

这里的 options 表示 mysql
的可用选项,能够贰回写三个依旧三个,也足以不写;database
表示连接的数据库,二遍只可以写叁个,假使不写,连接成功后要求用
use database 来步入要操作的数据库

有二种表明方式:

  • -加选项单词的缩写字符,加选项值

      mysql --uroot
    
  • --加选项的总体单词加=加选项的实际值

      mysql --user=root
    

要精通越来越多的选项,能够选择 mysql --help 命令查看

前言

二.底下是mysqlshow的一些常用选项

    2.1 –count 呈现数据库和表的计算消息

      如果不点名数据库,则呈现各个数据库的名号,表数据,库总记录行数。下边是查看全部数据库。
图片 3

      若是钦点数据库,则体现钦命数据库的每一个表名,表字段数量,表记录总行数。
下边是查看mysql库。
图片 4

      假使钦点数据库和表,则展示字段音讯,
上边是查看mysql库的user表。
图片 5

    2.2 -k 显示内定表中的具备索引 
     该选取显示两部份,一是钦点表的表结构,二是内定表的一时目录新闻.上边是浮现mysql库下的user表。
图片 6

--下面的sql语句显示与上面功能一样,查询mysql库下的user表,一是字段信息,二是索引信息
    SHOW FULL COLUMNS FROM mysql.`user`
    SHOW INDEX  FROM mysql.`user`

   2.3 -i 显示表的意气风发对场所新闻

      该选拔依旧很有用的,上面是呈现mysql库下的user表状态音讯。
图片 7

图片 8

   更多mysqlshow信息

总是选项

-u 或者 --user=name 钦赐顾客名

-p 或者 --password[=name]点名密码

-h 或者 --host=name 钦定服务器 IP 只怕域名

-P 或者 --port=# 内定连接端口

正文主要给我们介绍了关于MySQL常用工具的连带内容,分享出去供大家参谋学习,上面话非常少说了,来共同会见详细的介绍吧。

客商端字符集选项

--default-character-set=character-name

风度翩翩、mysql (客商端连接工具卡塔 尔(英语:State of Qatar)

执行选项

-e 或者 --execute=name 试行 SQL 语句并脱离

此选项能够一向在 MySQL 顾客端实施 SQL 语句,而不用一而再到 MySQL
数据库后再履行

可以接连进行七个 SQL 语句,用分号隔离

mysql -uroot -p -e"select * from dbtest.xixi;select * from dbtest.haha"

选取最频仍的连接数据库的顾客端工具,使用语法如下:

格式化选项

-E 或者 --vertical 将出口格局依照字段顺序竖着显示,相符于 SQL
语句后加 G,能够将出口内容相当多的行更鲜明完整的来得,平时和 -e
选项联合行使

-s 或者 --silent 去掉 mysql 中的线条框突显,字段之间用 tab
实行划分,每条记下呈现生机勃勃行

mysql [options] [database]

错误管理选项

-f 或者 --force 强制推行 SQL

-v 或者 --verbose 显示越来越多音讯

--show-warnings 呈现警示音信

那边的 options 表示 mysql
的可用选项,能够三次写三个要么四个,以至足以不写;database
表示连接的数据库,二回只可以写四个照旧不写,借使不写,连接成功后必要用
“use database”命令来走入要操作的数据库。

myisampack(MyISAM 表压缩工具卡塔 尔(阿拉伯语:قطر‎

myisampack tname

调减后成为只读表

1. 接连选项

mysqladmin(MySQL 处理工科具卡塔 尔(英语:State of Qatar)

mysqladmin
是三个施行管理操作的顾客端程序。能够用它来检查服务器的配置和日前的动静,成立并删除数据库等。它的效应和
mysql
客商端极其肖似,首要不相同在于它更注重于部分管理方面包车型客车意义,举例关闭数据库

mysqladmin [options] command [command-options] [command [command-options]]...

慎选的表明格局有多样,举例:

mysqlbinlog(日志管理工科具卡塔尔国

出于劳动器生成的二进制日志文件以二进制格式保存,所以只要想要检查那么些文件的文本格式,就能够用到
mysqlbinlog 日志管理工科具

mysqlbinlog [options] log-files1 log-files2...

option 常用的选项如下:

-d 或者 --database=name 钦赐数据库名称,只列出内定的数据库相关操作

-o 或者 --offset=# 忽视掉日志中的前 n 行命令

-r 或者 -result-file=name 将出口的文本格式日志输出到钦命文件

-s 或者 -short-form 彰显简单格式,省略掉风流倜傥部分新闻

--set-charset=char-name 在输出为文本格式时,在文件的率先行加上 set
names char-name

--start-datetime=name --stop-datetime=name 钦命日期区间内的装有日志

--start-position=# --stop-position=# 钦命地方间隔内的保有日志

# 这三种方式都是可以的
shell> mysql -u root
shell> mysql -uroot
shell> mysql -user=root

mysqlcheck(MyISM 表维护理工科人具)

mysqlcheck 客户端工具得以检查和修复 MyISAM
表,还足以优化和解析表,实际上,它集成了 mysql 工具中的
check,repair,analyze,optimize 的效果

mysqlcheck [options] dbname [table]
mysqlcheck [options] --database db1[db2 db3...]
mysqlcheck [options] --all-database

option 中有以下常用选项:

-c 或者 --check 检查表(默认)

-r 或者 --repair 修复表

-a 或者 --analyze 分析表

-o 或者 --optimize 优化表

  1. 连天选项

mysqldump(数据导出工具卡塔 尔(阿拉伯语:قطر‎

mysqldump
客商端工具用来备份数据库或在分化数据库之间展开数据迁移。备份内容包括创造表或装载表的
SQL 语句

mysqldump [options] dbname [tables]
mysqldump [options] --database db1[db2 db3]...
mysqldump [options] --all-database

mysqldump --help 查看更详细效用

  • -u, –user=name    钦赐客商名
  • -p, –password[=name]    钦点密码 
  • -h, –host=name    钦点服务器 IP 恐怕域名 
  • -P, –port=#    钦赐连接端口

输出内容选择

--add-drop-database 每种数据库创制语句前增加 drop database 语句

--add-drop-table 在每种表创造语句前拉长 drop table 语句

上述那四个选项能够在导入数据库时决不先手工删除旧的数据库,而是会活动删除,提升导入成效,不过导入前早晚要搞好备份何况认可旧数据库的确已经能够去除,不然误操作将会导致数据的损失。默许意况下,那七个参数都以电动抬高的

-n 或者 --no-create-db 不含有数据库的创立语句

-t 或者 --no-create-info 不包涵数据表的创始语句

-d 或者 --no-data 不含有数据

平常在在本地意况,为了便于,能够在 配置文件 my.cnf
中配备当前顾客和密码,配置好后,直接实践 mysql 就足以连接到数据库:

输出格式选项

--compact 使输出结果简洁,不包含私下认可选项中的种种注释

-c 或者 --complete-insert 使得出口文件中的 insert
语句包括字段名称,暗许不满含

-T 将点名数量表中的数量被分为单纯的数目文本和建表 SQL 四个公文

[client]
user=root
password=000000
port = 3306
socket = /tmp/mysql.sock
default-character-set = utf8mb4

字符集选项

--default-character-set=name 能够安装导出的客商端字符集

其黄金年代选项在导出数据库的时候非常主要,若是顾客端字符集和数据库字符集不相像,数据在导出的时候就供给开展字符集转变,将数据库字符集转变为顾客端字符集,经过调换后的数目异常的大概成为乱码只怕特殊字符,使得备份文件不恐怕恢复生机

布署好后,直接执行 mysql 就可以:

其余常用选项

-F 或者
--flush-logs:备份前刷新日志。加上此选项后,备份前将关门旧日志,生成新日志。使得举行理并答复原的时候平素从新日志起头展开重做,大大有利了苏醒进度

-l 或者
--lock-tables:给全部表加读锁。能够在备份时期动用,使得数据十分小概被更新,进而使备份的数码保持后生可畏致性,能够协作
-F 选项联合利用

zj@bogon:~$ mysql
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 19
...

mysqlimport(数据导入工具卡塔尔

用来导入 mysqldump 加 -T 选项后导出的公文文件。它实质上是客商端提供了
load data infile 语句的三个指令行接口

mysqlimport [options] dbname textfile1 [textfile2]...

签到远程服务器,须求钦命地址和端口:

mysqlshow(数据库对象查看工具卡塔 尔(英语:State of Qatar)

用来火速的找寻存在如何数据库,数据库中的表,表中的列或索引

mysqlshow [option] [dbname [tablename [colname]]]

若是不加任何取舍,私下认可意况下会展现全体数据库

常用选项:

--count:展现数据库和表的总括音信。要是不钦赐数据库,则显示每种数据库的称呼,表数据,记录数据;纵然钦定数据库,则体现指定数据库的各样表名,字段数量,记录数据;尽管钦命具体数据库中的具体表,则呈现表的字段消息

-k 或者 --keys:呈现钦点表中的装有索引

-i 或者 --status:展现表的风姿洒脱部分情景音讯

shell> mysql -h 192.168.10.10 -P 3306 -uroot -p

perror(错误代码查看工具卡塔 尔(英语:State of Qatar)

perror [options] [errorcode [errorcode...]]

注意:
在正式的生产条件中,为了安全起见,日常供给创建应用账号并给与适当权限,而不会用
root
直接操作数据库;暗中认可端口(3306卡塔尔国通常不要使用,能够改为私行操作系统未占用的端口。

replace(文本替换工具卡塔 尔(阿拉伯语:قطر‎

replace from to [from to]... -- file [file]...
replace from to [from to]... < file

--
表示字符串甘休,文件的最初,能够跟四个源文件,替换完成后会覆盖原来的文章件

< 表示后边的公文作为输入,替换后的文件显示在正儿八经输出上,不会覆盖原来的小说件

2. 顾客端字符集选项

--default-character-set=charset-name

用作服务器的字符集选项,那些选项也能够配备在 my.cnf 的 [mysqld]
组中。相同,作为顾客端字符集选项,也能够配备在 my.cnf 的
[mysql]组中,那样每一次用 mysql
工具连接数据库的时候就能自行使用此顾客端字符集。当然,也能够在 mysql
的指令行中手工业钦命客商端字符集:

shell> mysql -u user -default-character-set=charset

一定于在 mysql 客商端连接成功后实行:

set names charset;

3. 施行选项

-e, --execute=name // 执行 sql 语句并退出

此选项能够一直在 MySQL 客商端实施 sql
语句,对于有个别批管理脚本,那是方法特别有助于:

zj@bogon:~$ mysql mysql -e "select user,host from user"
+-----------+-----------+
| user | host |
+-----------+-----------+
| root | 127.0.0.1 |
| mysql.sys | localhost |
| root | localhost |
+-----------+-----------+

能够按这种办法连接进行四个 sql 语句,用俄文分号(;卡塔尔国隔离。

4. 格式化选项

  • -E, –vertical    将出口方式根据字段顺序竖着展现 
  • -s, –silent    去掉 mysql 中的线条框展现

“-E” 选项相像于 mysql 里面推行 sql 语句后加 “G”, 平常和 -e 一齐利用。

二、myisampack (myisam
表压缩工具卡塔尔国

myisampack 是三个表压缩工具,能够选用相当的高的压缩率来对 myisam
存款和储蓄引擎的表进行压缩,使得压缩后的表占用比压缩前小得多的半空中。不过压缩后的表将成为一个只读表,不能够实行DML 操作。

三、mysqladmin(MySQL
管理工科具卡塔尔

mysqladmin
是四个进行管理操作的顾客端程序。能够用它来检查服务器的布署和近来事态、创立并剔除数据库等。它的功效与
mysql 客商端非常相像,重要分裂在于它更讲究于部分管理方面包车型地铁功力。

行使语法:

shell> mysqladmin [options] command [command-options]...

能够实行的通令如下:

 create databasename Create a new database 新建数据库
 debug  Instruct server to write debug information to log 把 debug 日志记录到日志文件中
 drop databasename Delete a database and all its tables 删除数据库
 extended-status Gives an extended status message from the server 查看 MySQL 服务器的状态信息
 flush-hosts Flush all cached hosts
 flush-logs Flush all logs
 flush-status Clear status variables
 flush-tables Flush all tables
 flush-threads Flush the thread cache
 flush-privileges Reload grant tables (same as reload)
 kill id,id,... Kill mysql threads
 password [new-password] Change old password to new-password in current format
 ping  Check if mysqld is alive
 processlist Show list of active threads in server
 reload  Reload grant tables
 refresh  Flush all tables and close and open logfiles
 shutdown  Take server down
 status  Gives a short status message from the server
 start-slave Start slave
 stop-slave Stop slave
 variables  Prints variables available
 version  Get version info from server

举例:

zj@bogon:/usr/local/mysql/bin$ mysqladmin -uroot -p shutdown
Enter password: 

四、日志管理工科具

由于劳动器生成的二进制文件以二进制格式保存,所以假设想要检查那么些文件的文本格式,就能用到
mysqlbinlog 日志管理工科具。

用法如下:

shell> mysqlbinlog [option] log-file1 log-file2...

option 有众多选项:

  • -d,–database=name: 钦定数据库名称,只列出钦命的数据库相关操作。
  • -o, –offset=#: 忽视日志中的前 n 行命令。
  • -r, –result-file=name: 将出口的文本格式日志输出到钦点文件
  • -s, –short-form: 展现简单格式,省略掉大器晚成部分音讯。
  • –start-datetime=name –stop-datetime=name:
    钦点日期区间内的具有日志。
  • –start-position=# –stop-position=#: 钦命地方间距内的具有日志
  1. 示范打算:创立新日志,新建库 t1 和 t2, 以至分级新建表 test1 和 test2
MySQL [(none)]> reset master;
Query OK, 0 rows affected (0.01 sec)

MySQL [(none)]> create table t1(id int,name varchar);
ERROR 1046 (3D000): No database selected
MySQL [(none)]> reset master;
Query OK, 0 rows affected (0.01 sec)

MySQL [(none)]> create database t1;
Query OK, 1 row affected (0.04 sec)

MySQL [(none)]> create database t2;
Query OK, 1 row affected (0.02 sec)

MySQL [(none)]> use t1;
Database changed
MySQL [t1]> create table test1(id int, name varchar(30));
Query OK, 0 rows affected (0.11 sec)

MySQL [t1]> insert into test1 value (1,'zj');
Query OK, 1 row affected (0.14 sec)

MySQL [t1]> insert into test1 value (2,'zj2');
Query OK, 1 row affected (0.02 sec)

MySQL [t1]> use t2;
Database changed
MySQL [t2]> create table test2(id int,name varchar(30));
Query OK, 0 rows affected (0.02 sec)

MySQL [t2]> insert into test2 select * from t1.test1;
Query OK, 2 rows affected (0.03 sec)
Records: 2 Duplicates: 0 Warnings: 0

MySQL [t2]> select * from t1.test1;
+------+------+
| id | name |
+------+------+
| 1 | zj |
| 2 | zj2 |
+------+------+
2 rows in set (0.02 sec)

MySQL [t2]> select * from test2;
+------+------+
| id | name |
+------+------+
| 1 | zj |
| 2 | zj2 |
+------+------+
2 rows in set (0.00 sec)
  1. 不加任何参数,显示全体日志

注意:总得具备访谈目的文件的权柄

zj@bogon:/usr/local/mysql/bin$ sudo ./mysqlbinlog --no-defaults /data/mysql/mysql-bin.000001
[sudo] password for zj: 
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#170920 20:44:49 server id 1 end_log_pos 123 CRC32 0x42fd5a4d Start: binlog v 4, server v 5.7.18-log created 170920 20:44:49 at startup

......

create table test2(id int,name varchar(30))
/*!*/;
# at 1366
#170920 20:50:29 server id 1 end_log_pos 1431 CRC32 0x18a95938 Anonymous_GTID last_committed=6 sequence_number=7
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 1431
#170920 20:50:29 server id 1 end_log_pos 1509 CRC32 0x2fa8bd6c Query thread_id=4 exec_time=0 error_code=0
SET TIMESTAMP=1505911829/*!*/;
BEGIN
/*!*/;
# at 1509
#170920 20:50:29 server id 1 end_log_pos 1622 CRC32 0x77ce6f3b Query thread_id=4 exec_time=0 error_code=0
SET TIMESTAMP=1505911829/*!*/;
insert into test2 select * from t1.test1
/*!*/;
# at 1622
#170920 20:50:29 server id 1 end_log_pos 1653 CRC32 0x41b7a45b Xid = 29
COMMIT/*!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
  1. 加 -d 选项,将只彰显 t2 数据库的操作日志
zj@bogon:/usr/local/mysql/bin$ sudo ./mysqlbinlog --no-defaults /data/mysql/mysql-bin.000001 -d t2
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;

......

SET TIMESTAMP=1505911829/*!*/;
insert into test2 select * from t1.test1
/*!*/;
# at 1622
#170920 20:50:29 server id 1 end_log_pos 1653 CRC32 0x41b7a45b Xid = 29
COMMIT/*!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
  1. 加 -o 选项, 忽视掉前 20 行命令
zj@bogon:/usr/local/mysql/bin$ sudo ./mysqlbinlog --no-defaults /data/mysql/mysql-bin.000001 -o 20
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#170920 20:44:49 server id 1 end_log_pos 123 CRC32 0x42fd5a4d Start: binlog v 4, server v 5.7.18-log created 170920 20:44:49 at startup
# Warning: this binlog is either in use or was not closed properly.
ROLLBACK/*!*/;
BINLOG '
wWLCWQ8BAAAAdwAAAHsAAAABAAQANS43LjE4LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAADBYsJZEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA
AU1a/UI=
'/*!*/;
# at 1509
#170920 20:50:29 server id 1 end_log_pos 1622 CRC32 0x77ce6f3b Query thread_id=4 exec_time=0 error_code=0
use `t2`/*!*/;
SET TIMESTAMP=1505911829/*!*/;
SET @@session.pseudo_thread_id=4/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1436549152/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!C utf8mb4 *//*!*/;
SET @@session.character_set_client=45,@@session.collation_connection=45,@@session.collation_server=45/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
insert into test2 select * from t1.test1
/*!*/;
# at 1622
#170920 20:50:29 server id 1 end_log_pos 1653 CRC32 0x41b7a45b Xid = 29
COMMIT/*!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
  1. 加 -r 选项,将上面包车型大巴结果输出到文件 resultfile 中。
zj@bogon:/usr/local/mysql/bin$ sudo ./mysqlbinlog --no-defaults /data/mysql/mysql-bin.000001 -o 20 -r ./logfile
zj@bogon:/usr/local/mysql/bin$ sudo more ./logfile
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
...
  1. 结果呈现的剧情非常多,显得相比较乱,加 -s 选项将方面的内容进行简要显示
zj@bogon:/usr/local/mysql/bin$ sudo ./mysqlbinlog --no-defaults /data/mysql/mysql-bin.000001 -o 20 -s
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
ROLLBACK/*!*/;
use `t2`/*!*/;
SET TIMESTAMP=1505911829/*!*/;
SET @@session.pseudo_thread_id=999999999/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1436549152/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!C utf8mb4 *//*!*/;
SET @@session.character_set_client=45,@@session.collation_connection=45,@@session.collation_server=45/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
insert into test2 select * from t1.test1
/*!*/;
COMMIT/*!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
  1. 加 “–start-datetime –stop-datetime” 选项显示 5:00:00 ~ 5:01:00
    之间的日记
zj@bogon:/usr/local/mysql/bin$ sudo ./mysqlbinlog --no-defaults /data/mysql/mysql-bin.000001 --start-datetime="2017/09/30 05:00:00" --stop-datetime='2017/09/30 05:01:00'

起来日期和终止日期能够只写一个。要是只写起来日期,表示范围开头日期到日志甘休;就算只写甘休日期,表示日志开端到钦命的利落日期。

  1. –start-position=# 和 –stop-position=#,
    与日期范围相同,不过可以更确切的表示范围。
sudo ./mysqlbinlog --no-defaults /data/mysql/mysql-bin.000001 --start-position=4 --stop-datetime=100

五、mysqlcheck (myisam
表维护理工科人具)

mysqlcheck 工具得以检查和修复 myisam
表,还能优化和深入分析表。实际上,它集成了 mysql 工具中的
check、repair、analyze、optimize

有 3 种办法得以来调用 mysqlcheck:

shell> mysqlcheck [options] db_name [tables]
shell> mysqlcheck [options] --database DB1 [DB2 DB3...]
shell> mysqlcheck [options] --all-databse

option 中有以下常用选项:

  • -c, –check (检查表)
  • -r, –repair (修复表)
  • -a, –analyze (分析表)
  • -o, –optimize (优化表)

内部,暗中同意选项是 -c (检查表)

示例:

  1. 检查表
zj@bogon:/data/mysql$ mysqlcheck -c t2
t2.test1      OK
t2.test2      OK
  1. 修复表
zj@bogon:/data/mysql$ mysqlcheck -r t2
t2.test1
note : The storage engine for the table doesn't support repair
t2.test2      OK

test1 表的存放引擎为 innodb,不接济 repair。

  1. 分析表
zj@bogon:/data/mysql$ mysqlcheck -a t2
t2.test1      OK
t2.test2      OK
  1. 优化表
zj@bogon:/data/mysql$ mysqlcheck -o t2
t2.test1
note : Table does not support optimize, doing recreate + analyze instead
status : OK
t2.test2  

六、mysqldump (数据导出工具卡塔 尔(英语:State of Qatar)

mysqldump
顾客端工具用来备份数据库或在不一样数据库之间开展多少迁移。备份内容包罗创制表或装载表的
sql 语句。

有三中艺术来调用 mysqldump:

mysqldump [OPTIONS] database [tables] // 备份单个数据库或者库中部分数据表
mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...] //备份指定的一个或者多个数据库
mysqldump [OPTIONS] --all-databases [OPTIONS] // 备份所有数据库
  1. 接连几天选项
  • -u, –user=name             // 钦赐顾客名
  • -p, –password[=name]       // 内定密码 
  • -h, –host=name             // 钦赐服务器 IP 或然域名
  • -p, –port=#                // 钦定连接端口

示例:

shell> mysqldump -h192.18.10.10 -p3306 -uroot -p test > test.sql
  1. 出口内容选择
  • –add-drop-database     每一个数据库创设语句前增加 drop database 语句
  • –add-drop-table        在每种表创造语句前增加 drop table 语句

在私下认可意况下,那三个参数都自动抬高。

  • -n, –no-create-db      不分包数据库的始建语句 
  • -t, –no-create-info    不含有数据表的开创语句
  • -d, –no-data           不含有数据
  1. 出口格式选项

–compact 选项使得出口结果简洁,不包涵私下认可选项中的各个注释。

root@bogon:/usr/local/mysql/bin# ./mysqldump --compact t2 emp > emp.sql
root@bogon:/usr/local/mysql/bin# more emp.sql
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `emp` (
 `id` int(11) NOT NULL DEFAULT '0',
 `name` varchar(10) DEFAULT NULL,
 `context` text,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
INSERT INTO `emp` VALUES (1,'a','a'),(2,'b','b');

-c 恐怕 –complete-insert 选项使得出口文件中的 insert
语句包蕴字段名称,暗许是不包括字段名称的。

root@bogon:/usr/local/mysql/bin# ./mysqldump -c --compact t2 emp > emp.sql
root@bogon:/usr/local/mysql/bin# more emp.sql
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `emp` (
 `id` int(11) NOT NULL DEFAULT '0',
 `name` varchar(10) DEFAULT NULL,
 `context` text,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
INSERT INTO `emp` (`id`, `name`, `context`) VALUES (1,'a','a'),(2,'b','b');

-T 选项将点名数量表中的数据备份为单纯的数码文本和建表 sql
五个文本,平时和底下多少个选取一同协作使用,将数据导出为钦定格式呈现。

  • -T, –tab=name                  备份数据和建表语句
  • –fileds-terminated-by=name     域分隔符
  • –fileds-enclosed-by=name       域援用符
  • –fileds-optionally-enclosed-by=name    域可选援用符
  • –fileds-escaped-by=name        转义字符

示范:将 t2 数据库中的表 emp 导出为单独的数量文本和建表 sql
多少个公文,并存放在这里时此刻路径下的 bak 目录下。

1.开立备份目录

root@bogon:/usr/local/mysql/bin# mkdir bak
  1. 将 t2 数据库下的表 emp 备份到 bak 目录下
root@bogon:/usr/local/mysql/bin# ./mysqldump t2 emp -T ./bak
  1. 翻看 bak 目录,发掘七个文件
root@bogon:/usr/local/mysql/bin# ls ./bak
emp.sql emp.txt
  1. 翻开两个文件的剧情, .sql 结尾的是建表及插入数据的sql,.txt
    结尾的是表数据
root@bogon:/usr/local/mysql/bin# more ./bak/emp.sql
-- MySQL dump 10.13 Distrib 5.7.18, for Linux (x86_64)
--
-- Host: localhost Database: t2
-- ------------------------------------------------------
-- Server version 5.7.18-log

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `emp`
--

DROP TABLE IF EXISTS `emp`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `emp` (
 `id` int(11) NOT NULL DEFAULT '0',
 `name` varchar(10) DEFAULT NULL,
 `context` text,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2017-09-21 12:07:38


root@bogon:/usr/local/mysql/bin# more ./bak/emp.txt 
1 a a
2 b b
  1. 字符集选项

mysqldump 导出的数指标字符集使用的是 mysqld
运营时的暗许字符集,假如表的字符集用的不是默许字符集,导出的多少就有希望现身乱码。所以在导出时,应该先分明表的字符集,在导出时钦点该字符集就能够。

shell> mysqldump -uroot --compact --default-character-set=utf8 t2 emp > emp.sql
  1. 别的常用选项

-F –flush-logs (备份前刷新日志卡塔尔

增加此选项后,备份前将关门就日志,生成新日志。使得举办还原的时候一直从新日志开端进行重做,大大方便了回复进度。

-l –lock-tables (给全体表加读锁卡塔 尔(英语:State of Qatar)

能够在备份时期采纳,使得数据不能够被更新,进而使备份的多太师持后生可畏致性,能够相称-F 选项联合利用。

七、mysqlimport
(数据导入工具卡塔尔

mysqlimport 是顾客端数据导入工具,用来导入 mysqldump 加 -T
选项后导出的公文文件。

主导用法:

shell> mysqlimport [options] db_name textfile1

八、mysqlshow
(数据库对象查看工具)

mysqlshow
顾客端对象查找工具,用来比很快的检索存在怎么样数据库,数据库中的表、表中的列或索引,和
mysql 顾客端工具很临近,但是有一点点天性是 mysql 顾客端工具所不抱有的。

利用方式:

shell> mysqlshow [option] [db_name [tbl_name [col_name]]]

假使不加任何选用,默许景况下会显得全部数据库。

常用选项:

  1. –count (显示数据库和表的总结音信)

要是不点名数据库,则显得每一种数据库的名目、表数据、记录数据;

假使钦赐数据库,则体现钦定数据库的各个表名、字段数量,记录数据;

借使钦点具体数据库中的具体表,则显示表的字段音信。

  1. -k 恐怕 –keys (突显内定表中的具有索引)

此选项显示了两部分内容,意气风发部分是内定表的表结构,另大器晚成有个别中是钦赐表的一时目录音信

  1. -i 只怕 –status (突显表的某个意况音信)

九、perror (错误代码查看工具卡塔尔国

在 MySQL 的使用进程中,大概会产出五花八门的 error。那些 error
有个别是由于操作系统引起的,比如文件或然目录不设有;有个别则是出于存款和储蓄引擎使用不当引起的。这些error 平时都有四个代码,类似于 “error:#” 或者 “Errcode:#”,“#”
代表切实的错误号。perror 的效率正是分解这么些错误代码的亲力亲为含义:

perror [options] [errorcode [errorcode]]

zj@bogon:/usr/local/mysql/bin$ perror 30
OS error code 30: Read-only file system
zj@bogon:/usr/local/mysql/bin$ perror 60
OS error code 60: Device not a stream
zj@bogon:/usr/local/mysql/bin$ perror 30 60
OS error code 30: Read-only file system
OS error code 60: Device not a stream

总结

如上正是那篇文章的全体内容了,希望本文的从头到尾的经过对大家的求学可能工作能拉动一定的扶助,假使有疑问大家能够留言交换,多谢我们对台本之家的扶植。

您恐怕感兴趣的篇章:

  • 5个常用的MySQL数据库管理工具详细介绍
  • Mysql导入导出工具Mysqldump和Source命令用法详细解释
  • MYSQL
    ZIP免安装版配置步骤及图形化管理工科具mysql-workbench
  • MySQL质量深入分析工具profile使用教程
  • Mysqlslap MySQL压力测量试验工具
    轻巧教程
  • 选择Xtrabackup工具有份及回复(MySQL
    DBA的必不可少乏工人具)
  • mysql中优化和修复数据库工具mysqlcheck详细介绍
  • Mysql自带profiling品质分析工具使用分享
  • 七款常用mysql slow
    log剖析工具的可比剖析
  • mytop 使用介绍
    mysql实时监察和控制工具