Mysql中的常用工具

mysql:客户端连接工具

-u, --user=name     指定用户名

-p --password        指定密码

-h –host=hostname 指定服务器IP或者域名

-P –port=            指定端口

当然也可以在配置文件中指定用户名和密码,这样就不需要连接加上参数

[client]

user=root

password=redhat

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

-E, --vertical                与在mysql shell中执行命令尾部加上G 效果一样

-s, --silent                去掉mysql中的线框显示

-f,--force                 强制执行SQL,一般中间遇到错误就会退出

-v,--verbose                显示更多的信息,一般用于查看显示错误信息

--show-warnings            显示警告信息,在sql_mode不是严格的清空下,显示警告信息,比如字符串过长导致插入被截断,从而导致插入了错误信息

在批量执行一些可能含有语法错误或者数据错误的的数据时,可以通过-f、-v、--show-warnings来确保数据的正确插入。

myisampack:

表压缩工具,使用高压缩率使得压缩后的表比原来的小很多(40% to 70%)。但是压缩后的表将成为一个读表

myisampack    filename    #太小的不给压缩的

mysqladmin:mysql管理工具

ping     检测mysql服务器是否存活着。返回为0存活,即使不使用密码访问。返回1dead

processlist    列出活动的服务器线程

status        显示mysql服务器简单的信息:uptime,thread(客户端的线程号),questions(子服务器启动以来的查询数)、slow queries(超过long_query_time的查询次数)、opens(服务器已经打开的表的数目)、open tables(目前打开表的数目)

实例:Uptime: 205 Threads: 1 Questions: 14 Slow queries: 0 Opens: 15 Flush tables: 1 Open tables: 8 Queries per second avg: 0.68

更多的man mysqladmin很详细

mysqlbinlog    日志管理工具

mysqlbinlog [options] log_file

--database=db_name, -d db_name 指定数据库名称,只列出指定数据库相关操作

--offset=N, -o N 跳过前n行

--result-file=name, -r name 将输出文本的格式日志输出到指定文件

--short-form, -s 精简模式

--set-charset=charset_name 添加set names charset_name选项    使输出的结果到制定文件

--start-datetime=datetime (="2015-12-25 11:25:56")--stop-datetime=datetime

显示指定时间段日志信息

--start-position=N -stop-position=N显示指定位置中日志信息,比datetime更精准些

mysqlcheck

Myisam表维护工具,不用停掉mysql,但myisamchk必须停数据库):

mysqlcheck [options] [db_name [tbl_name ...]]

-c --check(检测表)

-r --repair(修复表)        不支持innodb

-a --analyze(分析表)        不支持innodb

-o --optimize(优化表)        不支持innodb

mysqldump

(数据导出工具)

mysqldump [options] db_name [tbl_name ...]

--add-drop-database        每个数据库创建应用前加上DROP DATABASE

--add-drop-table            每个表创建语句前加上DROP TABLE

默认情况下是自动加上的,所以在把备份的数据导入到新的数据库里面,一定要确保新的数据里面的数据是没用的。

-n, --no-create-db            不包含数据库的创建语句

-t, --no-create-info        不包含数据表的创建语句

-d, --no-data                不包含数据

--campact                     不包含默认选项中的注释

-c                             默认是不包含insert的字段信息的。-c,加上字段信息

在将数据导出某一文件或者目录下,那么这个目录和文件必须对运行mysql的这个用户可写,不然会报错的

mysqldump -predhat test2 -T /mnt

mysqldump: Got error: 1: Can't create/write to file '/mnt/tm.txt' (Errcode: 13) when executing 'SELECT INTO OUTFILE'

drwxr-xr-x. 3 root root 4096 Dec 8 11:40 /mnt/

-T , --tab     备份数据和建立表语句。数据之间用tab键空开

--fields-terminated-by 域分隔符

--fields-enclosed-by    域引用符,包裹数据段

--fields-escaped-by    设定字符用来转义特殊字符,比如tab、换行

--default-charater-set=name 和--tab选项冲突

-F flush-logs    备份先关闭旧日志,生成新的日志。使得进行恢复的时候直接从新的日志进行重做,大大方便了恢复的过程

-l lock-tables    可以在备份期间使用,使得数据无法被更新,从而使得备份的数据保持一致性,可以配合-F选项一起使用。

mysqlhostcopy

(Myisam表的热备份工具)

mysqlhotcopy db_name

mysqlhotcopy是perl脚本,他使用LOCK TABLES,FLUSH TABLES,cp或者scp来快速备份数据库。它是备份数据库或者单个表的最快途径,缺点是只支持Myisam表的备份,且只能在linux上允许。

安装包依赖:perl-DBD-MySQL-4.013-3.el6.x86_64

-p password    指定密码,中间须有空格

-u             指定用户名

--allowold 如果备份路径下含有同名备份,则将旧的备份目录rename为目录名_old

--addtodest    如果备份路径下存在同名的目录,则仅仅将新的文件加入目录。

--flushlog        表被锁定后刷新日志

--noindices        不备份所有的索引文件

mysqlimport(

数据导入工具)

mysqlimport -predhat --local test2 emp.txt

提供给客户端数据导入的工具,用来导入mysqldump加-T选项后导入的文本文件。实际上是客户端提供的load data infileql语句的一个命令行接口

mysqlshow

(数据库对象查看工具)

mysqlshow [options] [db_name [table_name [column_name]]]

mysqlshow predhat 不指定数据库名称,将显示所有的数据库

显示指定表中的所有索引; -k --keys

显示表的一些状态 i status

perror

(错误代码查看工具)

perror option error_no

replace

(文本替换)

replace from to --,< file

--,替换并修改源文件

<, 替换不修改源文件,只输出终端

root@server1 mnt]# replace wxl WXL -- test

test converted

[root@server1 mnt]# cat test

WXL qiandan

[root@server1 mnt]# replace qiandan Dragon < test

WXL Dragon

[root@server1 mnt]# cat test

WXL qiandan

原文地址:https://www.cnblogs.com/wxl-dede/p/5038014.html