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
--,替换并修改源文件
<, 替换不修改源文件,只输出终端
[email protected] mnt]# replace wxl WXL -- test
test converted
[[email protected] mnt]# cat test
WXL qiandan
[[email protected] mnt]# replace qiandan Dragon < test
WXL Dragon
[[email protected] mnt]# cat test
WXL qiandan