MySQL第19天 MySQL中的常用工具 MySQL日志

MySQL中的常用工具

MySQL 提供的各种管理工具,比如对象查看、数据备份、日志分析等


mysql 客户端链接工具

语法如下:

mysql [OPTIONS] [database]

一些常用选项

一种是“-”+选项单词的缩写字符+选项值;另外一种是“--”+选项的完整单词+“=”+选项的实际值

例如:

 mysql --uroot
 mysql --user=root

要了解更多的选项,读者可以用 mysql --help 命令进行查看

连接选项

可以查看一下当前的连接用户:

mysql> select current_user();

如果客户端和服务器位于同一台机器上,通常不需要指定-h 选项,否则要指定 MySQL 服务
所在的 IP 或者主机名,如果不指定端口,默认连接到 3306 端口

注意:在正式的生产环境中,为了安全起见,一般需要创建应用账号并赋予适当权限,而不会
用 root 直接操纵数据库;默认端口(3306)一般不要使用,可以改为任意操作系统未占
用的端口。


客户端字符集选项

--default-character-set=charset-name

作为服务器的字符集选项    以配置在 my.cnf 的[mysqld]

作为客户端字符集选项     也可以配置在 my.cnf 的[mysql]组中

也可以在 mysql 的命令行中手工指定客户端字符集

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

相当于在 mysql 客户端连接成功后执行:

set names charset;


执行选项

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

此选项可以直接在 MySQL 客户端执行 SQL 语句,而不用连接到 MySQL 数据库后再执行

例如


可以按这种方式连续执行多个 SQL 语句,用英文分号(;)隔开



格式化选项
错误处理选项


这 3 个参数经常一起使用,在很多情况下会对用户很有帮助,比如加载数据。如果数据中有
语法错误的地方,则会将出错信息记录在日志中,而不会停止使得后面的正常 SQL 无法执
行;而出错的语句,也可以在日志中得以查看,进行修复


< 可以将sql文本载入某个数据库。例如

mysql -uroot test -f < a.sql




myisampack(MyISAM 表压缩工具)

myisampack 是一个表压缩工具,可以使用很高的压缩率来对 MyISAM 存储引擎的表进行压

缩,使得压缩后的表占用比压缩前小得多的磁盘空间。但是压缩后的表也将成为一个只读表,不能写之类的

shell> myisampack [options] filename


mysqladmin(MySQL 管理工具)

mysqladmin 是一个执行管理操作的客户端程序。可以用它来检查服务器的配置和当前的状
态,创建并删除数据库等。它的功能和 mysql 客户端非常类似,主要区别在于它更侧重于一
些管理方面的功能,比如关闭数据库

语法:

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


参数:

create databasename                Create a new database
debug                                                Instruct server to write debug information to log
drop databasename                   Delete a database and all its tables
extended-status                            Gives an extended status message from the server
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, MySQL 4.1 hashing.
old-password new-password  Change old password to new-password in old 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

一个关闭数据库的例子

[root@localhost test]# mysqladmin -uroot -p shutdown


mysqlbinlog(日志管理工具)

语法

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

 -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=#:指定位置间隔内的所有日志


mysqlcheck(MyISAM 表维护工具)

mysqlcheck 客户端工具可以检查和修复 MyISAM 表,还可以优化和分析表。实际上,它集成
了 mysql 工具中 check、repair、analyze、optimize 的功能

语法:

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


option 中有以下常用选项:
 -c, --check
检查表
 -r, --repair
修复表
 -a, --analyze
分析表
 -o, --optimize 优化表
其中,默认选项是-c(检查表)


mysqldump(数据导出工具)

备份内容包含创建表或装载表的 SQL 语句。mysqldump 目前是 MySQL 中最常用的备份工具

shell> mysqldump [options] db_name [tables] #备份单个数据库或者库中部分数据表
shell> mysqldump [options] ---database DB1 [DB2 DB3...] #备份指定的一个或者多个数据库
shell> mysqldump [options] --all—database #备份所有数据库

1.连接选项

-u , --user=name
–p , --password[=name]
指定密码
–h , --host=name 指定服务器 IP 或者域名
–P , --port=#
指定连接端口

2.输出内容选项

--add-drop-database 每个数据库创建语句前加上 DROP DATABASE 语句
--add-drop-table          在每个表创建语句前加上 DROP TABLE 语句

这两个选项可以在导入数据库的时候不用先手工删除旧的数据库,而是会自动删除,提高导
入效率,但是导入前一定要做好备份并且确认旧数据库的确已经可以删除,否则误操作将会
造成数据的损失。在默认情况下,这两个参数都自动加上。

-n, --no-create-db 不包含数据库的创建语句
-t, --no-create-info 不包含数据表的创建语句
-d, --no-data
不包含数据


3.输出格式选项

--compact 选项使得输出结果简洁,不包括默认选项中的各种注释

-c --complete-insert 选项使得输出文件中的 insert 语句包括字段名称,默认是不包括字段名
称的。

-T 选项将指定数据表中的数据备份为单纯的数据文本和建表 SQL 两个文件

 -T ,--tab=name(备份数据和建表语句);
 --fields-terminated-by=name(域分隔符);
 --fields-enclosed-by=name(域引用符)
;
 --fields-optionally-enclosed-by=name(域可选引用符)
;
 --fields-escaped-by=name(转义字符)。


4.字符集选项
系统默认的客户端字符集可以通过以下命令来查看

[zzx@localhost ~]$ mysqld --verbose --help|grep 'default-character-set'|grep -v name
default-character-set                 gbk

这个选项在导出数据库的时候非常重要,如果客户端字符集和数据库字符集不一致,数据在
导出的时候就需要进行字符集转换,可能乱码

SET NAMES utf8
SET character_set_client='utf8';

SET character_set_connection='utf8';
SET character_set_results='utf8';

5.其他常用选项

 -F --flush-logs(备份前刷新日志)。
加上此选项后,备份前将关闭旧日志,生成新日志。使得进行恢复的时候直接从新日志开始
进行重做,大大方便了恢复过程。
 -l --lock-tables(给所有表加读锁)
可以在备份期间使用,使得数据无法被更新,从而使备份的数据保持一致性,可以配合-F
选项一起使用。


mysqlhotcopy(MyISAM 表热备份工具)

mysqlhotcopy 是一个 Perl 脚本,它使用 LOCK TABLES、FLUSH TABLES、cp 或 scp 来快速备份
数据库。它是备份数据库或单个表的最快途径,其缺点是 mysqlhotcopy 只用于备份 MyISAM,
而且它需要运行在 Linux/UNIX 环境中。

需要注意的是,mysqlhotcopy 是 Perl 脚本,因此需要安装 Perl 的 MySQL 数据库接口包


mysqlimport(数据导入工具)

mysqlimport 是客户端数据导入工具,用来导入 mysqldump 加-T 选项后导出的文本文件。它
实际上是客户端提供了 LOAD DATA INFILEQL 语句的一个命令行接口

shell> mysqlimport [options] db_name textfile1
[textfile2 ...]


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

mysqlshow 客户端对象查找工具,用来很快地查找存在哪些数据库、数据库中的表、表中的
列或索引。和 mysql 客户端工具很类似,不过有些特性是 mysql 客户端工具所不具备的。
mysqlshow 的使用方法如下

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


mysqlshow 的一些常用选项

 --count(显示数据库和表的统计信息)

 -k –keys(显示指定表中的所有索引)。

显示的内容实际上和在 mysql 客户端执行“show full columns from emp”
和“show index from emp”的结果完全一致。

 -i –status(显示表的一些状态信息)。


perror(错误代码查看工具)

在 MySQL 的使用过程中,可能会出现各种各样的 error,这些 error 有些是由于操作系统引
起的,比如文件或者目录不存在;有些则是由于存储引擎使用不当引起的。这些 error 一般
都有一个代码,类似于“error:#”或者“Errcode:#”,“#”代表具体的错误号。perror 的
作用就是解释这些错误代码的详细含义。

perror [OPTIONS] [ERRORCODE [ERRORCODE...]]

例如


replace(文本替换工具)

replace 是 MySQL 自带的一个对文件中的字符串进行替换的工具

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

其中--表示字符串结束,文件的开始,可跟多个源文件,替换完毕后会覆盖原文件。<表示
后面的文件作为输入,替换后的文本显示在标准输出上,不会覆盖原文件

 覆盖方式(--)

 非覆盖方式(<)

替换后的内容只显示在标准输
出上


小结

本章简单了介绍了 MySQL 中的一些常用工具的作用,并举例说明了基本的使用方法。熟练
使用这些工具,将会给我们工作带来很大的便利。由于这些工具参数众多,这里没有一一列
举,如果要了解更详细的使用方法,读者可以参考相关的帮助文档

































  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值