mysql 开发进阶篇系列 31 工具篇(mysql连接工具与

2019-11-21 08:40栏目:网站首页

大器晚成.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财富,提出在服务器空闲的情事实行。

  能够将数据文件压缩到百分之二十五-百分之八十,当以往使用表时,解压缩列需求的音信被读入内部存款和储蓄器。当访谈具体的笔录时品质会更加好,因为你只必要解压缩叁个记下。压缩后的表也将变为三个只读表,不能够张开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 管理工科具卡塔 尔(英语:State of Qatar)

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实时监督工具

版权声明:本文由威尼斯人app发布于网站首页,转载请注明出处:mysql 开发进阶篇系列 31 工具篇(mysql连接工具与