在MySQL中,自带了许多功能比较强大的工具,如mysql、mysqladmin、mysqldump等。
一、mysql命令
Mysql命令是用的最多的一个命令工具了,为用户提供一个命令行接口来操做管理MySQL 服务器。能够经过mysql --help来查看其详细使用方法。html
mysql命令选项 | 做用 | 说明 |
---|---|---|
-u | 指定链接数据库时使用的用户 | |
-p | 指定用户的密码 | 能够-p后面直接写密码,也能够不写,进行交互式输入密码,推荐后者 |
-h | 指定要登陆的主机 | 可选,若是为空,则登陆本机 |
-P | 指定要链接的端口 | 可选,默认是3306 |
-e | 能够经过-e命令直接执行SQL语句,而不用进入数据库 | 免交互登陆数据库执行SQL语句,一般在脚本中使用 |
-D | 指定要登陆到哪一个库 | 默认不会登陆到库,能够省略此选项,直接写库名 |
-E | 查询到的结果以行来显示 | 相似于每条SQL语句后面加“\G” |
-f | 即便出现SQL错误,也强制继续 | 好比在不登录数据库执行删除库的操做会有一个交互式的确认操做,可使用此选项来避免交互式 |
-X | 将查询到的数据导出位xml文件 | 导出的文件在windows系统中可使用excel表格打开 |
-H | 将查询到的数据导出位html文件 | 导出的文件在windows系统中可使用浏览器打开 |
--prompt | 定制本身的MySQL提示符显示的内容 | 默认登登陆到MySQL后的提示符是“mysql >”,可使用该选项定制提示符 |
--tee | 将操做数据库全部输入和输出的内容都记录进文件中 | 在一些较大维护变动的时候,为了方便被查,能够将整个操做过程当中的输出信息保存到某个文件中 |
1)-e、-u、-p、-h、-P、 等选项的使用语法mysql
[root@mysql ~]# mysql -uroot -p123 -h 192.168.171.135 -P3306 mysql -e "show tables;"; # 上述命令的含义以下: # -uroot:使用root用户 # -p123.com:密码是123.com # -h:登陆的主机地址是192.168.20.2 # -P:登陆的端口是3306 # mysql:登陆到库名为mysql的库中 # -e:后面是SQL语句 # 总结:使用密码为123.com的root用户,经过3306端口链接192.168.20.2的mysql库,查询mysql库中有哪些表。
返回结果以下:
2)--prompt使用方法sql
[root@mysql ~]# mysql -uroot -p123.com --prompt="\\u@\\h: \\d \\r:\\m:\\s> " #上述参数解:\u 表示用户名, \h 表示主机名, \d 表示当前数据库(none表示没有在任何库中); # \R小时 24小时制 \r小时(12小时制),\m分种,\s秒,\R小时 24小时制
返回结果以下:
上述方式每次链接都要写那些字符进行定制,很是麻烦,能够将其写入配置文件中的clinet字段下,以后再登陆就能够省略了,以下:数据库
[client] #注意写在client字段 prompt="\\u@\\h: \\d \\R:\\m:\\s> " #写入该行 # 注:无需重启MySQL服务,每次客户端链接都会去从新读取该配置 [mysqld] ..........#省略部份内容 #要记得重启服务哟
再次链接就不用再指定了,以下:
3)--tee使用方法vim
[root@mysql ~]# mysql -uroot -p123 --tee=/tmp/opt.log root@localhost: (none) 22:48:18> show database; root@localhost: (none) 22:48:24> show databases;
以下(注意屏幕打印的提示信息以及错误信息):
如今查看--tee指定的log文件,以下:
应该能够从上面的文件中看出,记录的是链接到数据库后,用户进行的全部操做命令及输出信息。windows
一样,“--tee”这个配置项也能够写入my.cnf这个主配置文件中的client字段下,以下:浏览器
[root@mysql ~]# vim /etc/my.cnf [client] ...........省略部份内容 prompt="\\u@\\h: \\d \\R:\\m:\\s> " tee=/tmp/opt.log
4)-H选项的使用方式缓存
[root@mysql ~]# mysql -H -uroot -p123 -e "select * from mysql.user" > a.html #将查询的结果重定向输出到a.html文件中 [root@mysql ~]# sz a.html
用浏览器打开下载的文件显示以下:
一样,-X选项的使用方式也同样。
二、mysqladmin命令工具
mysqadmin,顾名思义,提供的功能都是与MySQL 管理相关的各类功能。如MySQL Server状态检查,各类统计信息的flush,建立/删除数据库,关闭MySQL Server 等等。mysqladmin所能作的事情,虽然大部分均可以经过mysql链接登陆上MySQL Server 以后来完成,可是大部分经过mysqladmin来完成操做会更简单更
方便。
mysqladmin后面能够接选项,也能够接命令,这里就不说选项了,主要说一下命令
服务器
命令字 | 做用 |
---|---|
create databasename | 建立一个库 |
drop databasename | 删除一个库 |
status | 查询MySQL的基本状态(显示的信息有限 ) |
extended-status | 查询服务器的详细状态信息(相似于在数据库中执行show status;) |
flush-hosts | 刷新服务器缓存 |
flush-logs | 刷新二进制日志文件(若是二进制日志功能开启,那么执行这个操做会生成新的二进制日志文件) |
flush-status | 刷新状态变量 |
flush-tables | 刷新全部表 |
flush-threads | 刷新全部线程缓存 |
flush-privileges | 从新加载受权表 |
processlist | 查看当前链接数据库的全部ID详细信息 |
kill id | 杀掉某个或多个链接ID(通常须要先使用processlist查看出ID列表,而后根据ID将其kill掉 ) |
ping | 检测某个MySQL服务是否处于启动状态 |
password | 修改用户密码 |
shutdown | 关闭MySQL服务 |
start-slave | 开启主从复制 |
stop-slave | 关闭主从复制 |
variables | 查询MySQL服务中的全部变量 |
version | 查询MySQL的版本详细信息 |
1)status命令字的使用ide
[root@mysql ~]# mysqladmin -uroot -p123 status
返回结果以下:
2)ping命令字的使用
服务启动状态下执行ping命令:
[root@mysql ~]# mysqladmin -uroot -p123 -h 192.168.171.135 ping
中止服务后再执行ping命令:
[root@mysql ~]# mysqladmin -uroot -p123 -h 192.168.171.135 ping
3)processlist、kill id,id..命令字的使用
[root@mysql ~]# mysqladmin -uroot -p123 processlist
使用kill命令字将其链接ID杀掉:
[root@mysql ~]# mysqladmin -uroot -p123 kill 5
三、mysqldump
这个工具其功能就是将MySQL Server中的数据以SQL 语句的形式从数据库中dump 成文本文件。mysqldump是作为MySQL 的一种逻辑备份工具,在我以前的博文中有这个工具的使用方法:MySQL的备份与恢复详解
四、mysqlbinlog
mysqlbinlog程序的主要功能就是分析MySQL Server 所产生的二进制日志(也就是binlog)。
经过mysqlbinlog,咱们能够解析出binlog中指定时间段或者指定日志起始和结束位置的内容解析成SQL 语句。
[root@mysql data]# mysqlbinlog binary_log.000012 #指定二进制日志文件便可