ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL自带工具使用介绍

2020-01-02 19:00:56  阅读:323  来源: 互联网

标签:root 数据库 MySQL mysqladmin mysql 自带 com 工具


前言

在MySQL中,自带了许多功能比较强大的工具,如mysql、mysqladmin、mysqldump等。这篇博文将写下部分命令工具的用法。

1、mysql命令

Mysql命令是用的最多的一个命令工具了,为用户提供一个命令行接口来操作管理MySQL 服务器。可以通过mysql --help来查看其详细使用方法。

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、 等选项的使用语法

[root@mysql ~]# mysql -uroot -p123.com -h 192.168.20.2 -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库中有哪些表。

上述命令返回结果如下:

MySQL自带工具使用介绍

2)--prompt使用方法

[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小时制

返回结果如下:
MySQL自带工具使用介绍

上述方式每次连接都要写那些字符进行定制,非常麻烦,可以将其写入配置文件中的clinet字段下,之后再登录就可以省略了,如下:

[root@mysql ~]# vim /etc/my.cnf     #编辑主配置文件

[mysqld]
             ..........#省略部分内容
[client]      #注意写在client字段
prompt="\\u@\\h: \\d \\R:\\m:\\s> "         #写入该行
# 注:无需重启MySQL服务,每次客户端连接都会去重新读取该配置

再次连接就不用再指定了,如下:

MySQL自带工具使用介绍

3)--tee使用方法

#连接数据库时使用“--tee”选项,并登录数据库执行一些SQL语句
[root@mysql ~]# mysql -uroot -p123.com --tee=/tmp/opt.log
root@localhost: (none) 14:46:45> show database;
root@localhost: (none) 14:46:54> show databases;

如下(注意屏幕打印的提示信息以及错误信息):

MySQL自带工具使用介绍

现在查看--tee指定的log文件,如下:

MySQL自带工具使用介绍

应该可以从上面的文件中看出,记录的是连接到数据库后,用户进行的所有操作命令及输出信息。

同样,“--tee”这个配置项也可以写入my.cnf这个主配置文件中的client字段下,如下:

MySQL自带工具使用介绍

2、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命令字的使用

[root@mysql data]# mysqladmin -uroot -p123.com status

返回结果如下:
MySQL自带工具使用介绍

2)ping命令字的使用

服务启动状态下执行ping命令:

[root@mysql data]# mysqladmin -uroot -p123.com -h 192.168.20.2 ping

返回结果如下:
MySQL自带工具使用介绍

停止服务后再执行ping命令:

[root@mysql data]# mysqladmin -uroot -p123.com -h 192.168.20.2 ping

返回结果如下:

MySQL自带工具使用介绍

3)processlist、kill id,id..命令字的使用

[root@mysql data]# mysqladmin -uroot -p123.com processlist

返回结果如下:
MySQL自带工具使用介绍

使用kill命令字将其连接ID杀掉:
MySQL自带工具使用介绍

3、mysqldump

这个工具其功能就是将MySQL Server中的数据以SQL 语句的形式从数据库中dump 成文本文件。mysqldump是做为MySQL 的一种逻辑备份工具,在我之前的博文中有这个工具的使用方法:MySQL的备份与恢复详解

4、mysqlbinlog

mysqlbinlog程序的主要功能就是分析MySQL Server 所产生的二进制日志(也就是binlog)。
通过mysqlbinlog,我们可以解析出binlog中指定时间段或者指定日志起始和结束位置的内容解析成SQL 语句。

使用方法如下:

[root@mysql data]# mysqlbinlog binary_log.000012   #指定二进制日志文件即可

返回结果如下:

MySQL自带工具使用介绍

———————— 本文至此结束,感谢阅读 ————————

标签:root,数据库,MySQL,mysqladmin,mysql,自带,com,工具
来源: https://blog.51cto.com/14154700/2463878

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有