开辟升级篇体系,MySQL中的常用工具实例汇总

2019-10-24 00:57 来源:未知

风度翩翩.mysql 连接工具  

  在mysq提供的工具中,DBA使用最频仍的实际mysql。这里的mysql是指接连数据库的顾客端工具。

  1.1 连接选项

-u, -- user=name 钦点顾客名
-p ,--password[=name] 钦点密码
-h ,--host=name 内定服务器IP或许域名
-p, --port=# 钦赐连接端口

在实际连接中命令如下:mysql -u 用户名 -p 密码
[root@hsr ~]#  mysql -u root -p

-- 完整的连接命令如下
[root@hsr ~]#  mysql -u root -p -h 172.168.18.201 -P 3306
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or g.

  1.2 施行选项
    通过 "-e,--execute=name 试行sql语句并脱离" 此选项不须求两次三番到mysql数据库后再试行,对于部分批处理脚本很实惠,上面是从顾客端直接询问mysql数据库中user表的User和Host字段:

[root@hsr ~]#  mysql -u root -p  mysql -e "select User,Host from user"
Enter password: 

    图片 1
  连接三个sql 语句用匈牙利语分号隔离如   select User,Host from user; select xxx。

前言

二. myisampack(MyISAM表压缩工具)

  myisampack是一个表压缩工具。在回降在此之前须求承认mysqld已关门大概要减小的表不会有任何的sql操作;何况收缩进度会很占用cpu能源,提出在服务器空闲的情状举行。

  能够将数据文件压缩到75%-八成,当现在使用表时,解压缩列需求的新闻被读入内部存款和储蓄器。当访谈具体的笔录时质量会更加好,因为你只须要解压缩四个笔录。压缩后的表也将形成贰个只读表,不可能扩充DML操作。

--压缩前,查看test库中表的数据文件大小,其中有个a表是myisam类型, 将压缩MYD文件

    [root@hsr ~]# cd /usr/local/mysql/data

    [root@hsr data]# cd test
    [root@hsr test]# ls -ltr
    总用量 24
    -rw-r----- 1 mysql mysql   61 8月  24 16:43 db.opt
    -rw-r----- 1 mysql mysql 8566 8月  28 14:29 a.frm
    -rw-r----- 1 mysql mysql 1024 8月  28 14:32 a.MYI
    -rw-r----- 1 mysql mysql  456 8月  28 14:32 a.MYD

-- myisampack先到基地址里面找到该命令(用rpm安装可以在根目录下直接用该命令)
[root@hsr ~]# cd /usr/local/mysql/bin

图片 2

-- 压缩a表,提示太小无法压缩
[root@hsr bin]# ./myisampack /usr/local/mysql/data/test/a
/usr/local/mysql/data/test/a is too small to compress
如果压缩成功,该表就只能读,不能写。可以在查看MYD文件大小。

本文首要给我们介绍了有关MySQL常用工具的有关内容,分享出去供大家仿效学习,上边话相当的少说了,来一块看看详细的牵线吧。

后生可畏、mysql (顾客端连接工具)

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

mysql [options] [database]

这边的 options 表示 mysql 的可用选项,能够二回写三个要么多少个,以至能够不写;database 表示连接的数据库,一次只好写贰个照旧不写,若是不写,连接成功后必要用 “use database”命令来步入要操作的数据库。

1. 连连选项

慎选的表明情势有五种,比如:

# 这三种方式都是可以的
shell> mysql -u root
shell> mysql -uroot
shell> mysql -user=root
  1. 一连选项
  • -u, --user=name    钦点顾客名
  • -p, --password[=name]    钦命密码 
  • -h, --host=name    钦命服务器 IP 只怕域名 
  • -P, --port=#    钦命连接端口

日常在在本地情形,为了便于,能够在 配置文件 my.cnf 中布局当前客商和密码,配置好后,直接试行 mysql 就可以连接到数据库:

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

安顿好后,直接实施 mysql 就能够:

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

登陆远程服务器,必要钦点地点和端口:

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

注意: 在规范的生产条件中,为了安全起见,平常须要创立应用账号并授予适当权限,而不会用 root 直接操作数据库;暗中同意端口(3306)日常不要选用,能够改为随机操作系统未占用的端口。

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 (数据导出工具)

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 (给全体表加读锁)

能够在备份时期接收,使得数据不能被更新,进而使备份的多里胥持风流浪漫致性,能够合作-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实时监察和控制工具
TAG标签:
版权声明:本文由金沙澳门唯一官网发布于数据库管理,转载请注明出处:开辟升级篇体系,MySQL中的常用工具实例汇总