您的位置:首页 > 数据库 > MySQL

Mysql中的常用工具

2015-12-11 09:23 549 查看

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很详细

[b]mysqlbinlog [/b]日志管理工具

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: