一.概述

    mysqlshow顾客端查找工具,能异常快地寻觅存在怎么样数据库,数据库中的表,表中的列或索引,和mysql顾客端工具很接近,不过有一点特性是mysql客商端工具所不富有的。
  mysqlshow的行使形式如下:
图片 1

    借使不加任何选拔,暗中认可意况下,会呈现全数数据库,下边将显安妥前mysql中全数数据库。
图片 2

mysqlimport(数据导入工具)

用来导入 mysqldump 加 -T 选项后导出的文本文件。它实际是顾客端提供了
load data infile 语句的贰个发令行接口

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

mysqldump 导出的数指标字符集使用的是 mysqld
运维时的私下认可字符集,如若表的字符集用的不是私下认可字符集,导出的数额就有希望现身乱码。所以在导出时,应该先明确表的字符集,在导出时钦点该字符集就可以。

在用mysql时(show
tables),临时候需求查看表和字段的相关音讯(表与某字段是或不是存在等.)~~而PHP提供了那样的连锁函数,如:mysql_list_dbs(),mysql_list_fields(),但mysql_list_田野同志s()
函数等已不适合时机,所以要用show…这一个SQL指令来搜寻。

二.上面是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信息

错误管理选项

-f 或者 --force 强制实施 SQL

-v 或者 --verbose 展现越多音讯

--show-warnings 展现警告信息

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)

你只怕感兴趣的稿子:

  • PHP获取mysql数据表的字段名称和详细新闻的方法
  • MySQL中show命令方法获得表列及成套库的详细音讯(精品珍藏)
  • php
    获取mysql数据库音讯代码
  • php+mysqli达成将数据库中一张表消息打字与印刷到表格里的不二等秘书诀
  • PHP获取php,mysql,apche的版本音讯示例代码
  • php
    mysql获取表字段名称和字段消息的二种方法
  • php获取mysql字段名称和其它音讯的例子
  • MySQL笔记之系统新闻函数详解
  • mysql
    获取当天揭橥的新闻的话语
  • Sql查询MySql数据库中的表名和呈报表中字段(列)音信

mysql(客商端连接工具)

mysql[options][database]

这里的 options 表示 mysql
的可用选项,可以三遍写八个或然八个,也能够不写;database
表示连接的数据库,二回只好写三个,即使不写,连接成功后需求用
use database 来步入要操作的数据库

有三种表达方式:

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

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

      mysql --user=root
    

要打听越多的选项,可以采纳 mysql --help 命令查看

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*/;
...

SHOW 指令(‘[..]’里的可选)
#显示mysql中有着数据库的称号
show databases;
#来得mysql中的相关表
show tables [ from db_name]
#来得数据表表状态新闻
show table status
#翻开存款和储蓄进度气象
show procedure status
#列出表字段完整属性
show full fields from tbl_name
#展现表中列名称
show columns from table_name [ from database_name ] ; 或show columns
from database_name.table_name;
#突显二个客商的权位,呈现结果类似于grant 命令
show grants for user_name;
#列出表索引
show index from tbl_name
#突显表的目录
show index from table_name
#呈现一些系统特定能源的新闻,比如,正在运维的线程数量
show status [from   db_name]
#来得系统变量的名目和值
show [ global] variables
#彰显系统中正在周转的具有进度,也正是日前正在实行的询问大非常多客户能够查看他们本身的进度,不过倘诺他们具备process权限,就足以查看全数人的经过,包含密码
show processlist
#来稳当前应用照旧钦命的database中的各类表的信息新闻包涵表类型和表的最新更新时间
show table status
#体现服务器所支撑的两样权限
show privileges
#体现create database 语句是不是能够创建钦赐的数据库
show create database database_name
#来得create database 语句是或不是能够创建钦赐的数据库
show create table table_name
#来得安装未来可用的积攒引擎和暗中认可引擎
show engies
#来得innoDB存款和储蓄引擎的情事
show innodb status
#呈现BDB存储引擎的日记
show logs   —–那么些已经被撤除了
#呈现最终叁个进行的讲话所发生的谬误、警告和布告
show warnings
#只显示最终一个实践语句所发生的错误
show errors
#展现安装后的可用存款和储蓄引擎和暗中同意引擎
show [storage] engines;
============================================================
mysqlshow,该指令只参彰显数据库、表、列的新闻
例如:mysqlshow   -uroot   -pXXXX   mysql   #突显mysql数据库的新闻
例如:mysqlshow   -uroot   -pXXXX   mysql   user  
#展示mysql数据库中user表的音信
例如:mysqlshow   -uroot   -pXXXX   mysql   user   user  
#来得mysql数据库中user表中的user列的音信

顾客端字符集选项

--default-character-set=character-name

选择最频仍的连天数据库的客商端工具,使用语法如下:

连日来选项

-u 或者 --user=name 钦点客商名

-p 或者 --password[=name]钦命密码

-h 或者 --host=name 钦命服务器 IP 恐怕域名

-P 或者 --port=# 钦点连接端口

shell> mysqlimport [options] db_name textfile1

其余常用选项

-F 或者
--flush-logs:备份前刷新日志。加上此选项后,备份前将关闭旧日志,生成新日志。使得实行回复的时候一直从新日志初阶展开重做,大大有利了苏醒进程

-l 或者
--lock-tables:给具有表加读锁。能够在备份时期选取,使得数据不能被更新,进而使备份的多寡保持一致性,能够合作
-F 选项联合行使

sudo ./mysqlbinlog --no-defaults /data/mysql/mysql-bin.000001 --start-position=4 --stop-datetime=100

出口内容选取

--add-drop-database 每一种数据库创制语句前拉长 drop database 语句

--add-drop-table 在各样表创设语句前增进 drop table 语句

上述那八个挑选能够在导入数据库时不用先手工业删除旧的数据库,而是会活动删除,进步导入效能,可是导入前应当要做好备份並且认同旧数据库的确曾经能够去除,不然误操作将会促成数据的损失。暗中认可意况下,那三个参数都以机关抬高的

-n 或者 --no-create-db 不分包数据库的始建语句

-t 或者 --no-create-info 不含有数据表的成立语句

-d 或者 --no-data 不包括数据

一经不加任何接纳,暗许情形下会议及展览示全体数据库。

perror(错误代码查看工具)

perror [options] [errorcode [errorcode...]]
  • -n, –no-create-db      不分包数据库的开创语句 
  • -t, –no-create-info    不含有数据表的创制语句
  • -d, –no-data           不带有数据

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=# 钦赐地方间距内的全体日志

貌似在在本地情状,为了方便,能够在 配置文件 my.cnf
中安顿当前客商和密码,配置好后,直接实行 mysql 就足以接连到数据库:

实行选项

-e 或者 --execute=name 实施 SQL 语句并脱离

此选项可以平昔在 MySQL 顾客端试行 SQL 语句,而不用连续到 MySQL
数据库后再进行

能够接踵而来实行五个 SQL 语句,用分号隔开

mysql -uroot -p -e"select * from dbtest.xixi;select * from dbtest.haha"
  • -u, –user=name    钦赐顾客名
  • -p, –password[=name]    钦命密码 
  • -h, –host=name    钦命服务器 IP 也许域名 
  • -P, –port=#    钦点连接端口

mysqldump(数据导出工具)

mysqldump
客商端工具用来备份数据库或在分化数据库之间举办数量迁移。备份内容包罗创立表或装载表的
SQL 语句

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

mysqldump --help 查看更详尽功用

  1. 分析表

replace(文本替换工具)

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

--
表示字符串结束,文件的开首,能够跟八个源文件,替换完毕后会覆盖原来的文章件

< 表示后边的文本作为输入,替换后的公文呈现在标准输出上,不会覆盖原来的书文件

myisampack 是多少个表压缩工具,能够应用非常高的压缩率来对 myisam
存款和储蓄引擎的表打开压缩,使得压缩后的表占用比压缩前小得多的长空。不过压缩后的表将成为贰个只读表,不能够举办DML 操作。

格式化选项

-E 或者 --vertical 将出口形式依据字段顺序竖着显示,类似于 SQL
语句后加 \G,能够将出口内容比较多的行更清晰完整的来得,经常和 -e
选项联合使用

-s 或者 --silent 去掉 mysql 中的线条框呈现,字段之间用 tab
进行划分,每条记下展现一行

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

mysqladmin(MySQL 管理工具)

mysqladmin
是多少个施行管理操作的客户端程序。能够用它来检查服务器的陈设和脚下的情形,创造并剔除数据库等。它的效应和
mysql
客商端特别相近,重要差别在于它更青眼于一些处理方面包车型大巴意义,比方关闭数据库

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

myisampack(MyISAM 表压缩工具)

myisampack tname

减去后化作只读表

zj@bogon:/data/mysql$ mysqlcheck -a t2
t2.test1      OK
t2.test2      OK

输出格式选项

--compact 使出口结果简洁,不包蕴暗许选项中的各个注释

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

-T 将点名数量表中的数据被分成单纯的数量文本和建表 SQL 多少个公文

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

字符集选项

--default-character-set=name 能够设置导出的顾客端字符集

那些选项在导出数据库的时候极度首要,假如客商端字符集和数据库字符集不雷同,数据在导出的时候就须求开展字符集转变,将数据库字符集转变为客商端字符集,经过调换后的数据很也许成为乱码可能特殊字符,使得备份文件不能够苏醒

此选项展现了两局地剧情,一部分是钦命表的表结构,另一片段中是钦赐表的眼下目录信息

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 优化表

 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

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

用来异常快的查找存在怎样数据库,数据库中的表,表中的列或索引

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

万一不加任何取舍,默许意况下会显示全体数据库

常用选项:

--count:彰显数据库和表的总结新闻。假设不钦定数据库,则突显每个数据库的称谓,表数据,记录数据;假若钦点数据库,则显得钦赐数据库的各个表名,字段数量,记录数据;借使钦定具体数据库中的具体表,则展现表的字段消息

-k 或者 --keys:展现钦点表中的具有索引

-i 或者 --status:突显表的部分景色消息

  1. 输出格式选项

mysqlshow
客商端对象查找工具,用来极快的物色存在什么样数据库,数据库中的表、表中的列或索引,和
mysql 顾客端工具很接近,可是有一点天性是 mysql 客户端工具所不具有的。

  1. 演示企图:创立新日志,新建库 t1 和 t2, 以及个别新建表 test1 和 test2
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
root@bogon:/usr/local/mysql/bin# ./mysqldump t2 emp -T ./bak

option 有相当多挑选:

  1. 翻看多个文件的内容, .sql 结尾的是建表及插入数据的sql,.txt
    结尾的是表数据
-e, --execute=name // 执行 sql 语句并退出
  1. 不加任何参数,显示全数日志

您或许感兴趣的篇章:

  • 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实时监察工具
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*/;
shell> mysqlcheck [options] db_name [tables]
shell> mysqlcheck [options] --database DB1 [DB2 DB3...]
shell> mysqlcheck [options] --all-databse

有 3 种艺术能够来调用 mysqlcheck:

配备好后,直接实施 mysql 就可以:

-l –lock-tables (给所有表加读锁)

  1. 别的常用选项
  • –add-drop-database     每一种数据库创制语句前增进 drop database 语句
  • –add-drop-table        在各种表创设语句前拉长 drop table 语句
  1. -k 大概 –keys (突显钦赐表中的具有索引)

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注