[转]使用tee记录mysql client 所有的操作,十个节省时间的mysql命令
查看:
tail -f /tmp/jack.txt
一:tee
方法一、配置文件
在服务器上的/etc/my.cnf中的[client]加入
tee =/tmp/client_mysql.log即可.
方法二、命令行
1.mysql -uroot --tee=/tmp/client_mysql.log
2.这个类似于sqlplus的spool功能,可以将命令行中的结果保存到外部文件中。如果指定已经存在的文件,则结果会附加到文件中。
mysql> tee client_mysql.log
Logging to file 'client_mysql.log '
或者
mysql> \T client_mysql.log
Logging to file 'client_mysql.log '
mysql> notee
Outfile disabled.
或者
mysql> \t
Outfile disabled.
二:mysql pager、tee、prompt说明:
当表中数据行很多,一页看不完时,可以使用pager [cmd]更改mysql的查询输出,cmd为linux的标准命令,如:
mysql> pager less;
mysql> select * from test.dept;
查询输出都是通过管道传给less命令,可以实现分页浏览
mysql> nopager;即可回到标准输出stdout
还可使用如下语句将输出发送到文件中:
mysql> pager cat>/home/pw/osq.txt;
less说明:
退出:“:q”
下一页:“F”
上一页:“B”
查询
向前搜索
/ - 使用一个模式进行搜索,并定位到下一个匹配的文本
n - 向前查找下一个匹配的文本
N - 向后查找前一个匹配的文本
向后搜索
? - 使用模式进行搜索,并定位到前一个匹配的文本
n - 向后查找下一个匹配的文本
N - 向前查找前一个匹配的文本
tee说明
mysql>tee filename
可以将之后在mysql的所有输入输出操作记录到filename中。
prompt说明
用于修改mysql提示符
[mysql]
prompt=(
来自:http://blog.sina.com.cn/s/blog_45722cc00100z5wm.html
虽然有许多基于GUI的MySQL客户端存在,如著名的phpMyAdmin和SQLYog,但我一直喜欢原生的MySQL命令行客户端,的确,在未熟悉这些命令行接口(CLI)之前,我们需要花一些时间来熟悉它们,特别是你平时不是经常在具有强大的CLI环境的操作系统下工作时,但只要经过一些练习,你就可以通过CLI管理用户,浏览你的数据库和执行其它任务,其快感是其它人体会不到的。
在这篇文章中,我将会介绍我在工作中积累起来的一些MySQL命令行客户端技巧,不管你尝试其中一个还是所有技巧,我敢保证你一定会节省大量的时间。
顺便提一下,MySQL命令行客户端适应所有操作系统,当然包括Windows,但因为Windows原生CLI环境让人畏惧,因此推荐Windows用户下载并安装Console,它是Windows命令行的一个替代解决方案,提供了更强大的功能,如方便的文本选择,多标签窗口等。
1、登录过程自动化
正确配置的MySQL服务器需要你提供用户名和密码进行身份验证,通常情况下,我们可以直接在mysql命令后加上用户名,出于安全考虑,密码就不跟上了,回车执行时,命令提示符会提醒你输入密码。
%>mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or g. ...
通过这一个小小的改进,一年可以少输入几千次用户名,累计起来在登录时间上可以节省几个小时,创建一个.my.cnf文件,将其放在你的home目录下,如果是Windows,文件名则为my.ini,并且要放在MySQL安装目录下,在这个文件中,添加下面的代码,请使用你的登录信息替换占位符。
[client] host = your_mysql_server user = your_username password = your_password
一定要正确设置这个文件的权限,防止敏感数据被偷窥。
2、自动切换数据库
登录客户端后,你需要切换到目标数据库,通常我们会使用下面这个命令来切换数据库:
mysql>use wjgilmore_dev;
如果你想登录后自动切换到目标数据库,可以在上一步介绍的文件中添加下面的命令,注意位置也要放在[client]小节:
database = your_database_name
3、从脚本发送命令
设计一个新数据库时,我喜欢使用MySQL Workbench(MySQL工作台)设计模式和关系,它是一个特别强大的工具,你可以在图形界面下管理你的模式,然后同步到MySQL服务器,或将SQL命令导出到一个文件,方便以后再导入到MySQL。
如果你喜欢手写代码,如创建大量的存储过程,或执行一个很长的连接,你可以将SQL保存为一个文件,然后将这个文件传递给客户端执行,如:
%>mysql < schema.sql
当然你需要指定连接字符串,或象前面一样通过配置文件来指定。
4、垂直显示结果
即使是很简单的表模式,也会包含几列字段,例如下面的表由11个字段组成,当我执行一个全结构查询时,输入结果如下:
mysql> select * from accounts where username = 'wjgilmore';
+----+-----------+------------------+------------------------------ ----+----------+-----------+------------+-----------+-------------- --------------------+---------------------+---------------------+ | id | username | email | password | zip_code | latitude | longitude | confirmed | recovery | created_on | last_login | +----+-----------+------------------+------------------------------- ---+----------+-----------+------------+-----------+----------------- -----------------+---------------------+---------------------+ | 7 | wjgilmore | wj@wjgilmore.com | 2b877b4b825b48a9a0950dd5bd1f264d | 43201 | 39.984577 | -83.018692 | 1 | 8bnnwtqlt2289q2yp81tuge82fty501h | 2010-09-16 14:48:41 | 2010-10-27 15:49:44 | +----+-----------+------------------+---------------------------------- +----------+-----------+------------+-----------+---------------------- ------------+---------------------+---------------------+
显然我们不能接受,也无法阅读这种显示结果,使用G命令将上面丑陋的显示结果转换为垂直型。
mysql> select * from accounts where username = 'wjgilmore'G *************************** 1. row *************************** id: 7 username: wjgilmore email: wj@wjgilmore.com password: 2b877b4b825b48a9a0950dd5bd1f264d zip_code: 43201 latitude: 39.984577 longitude: -83.018692 confirmed: 1 recovery: 8bnnwtqlt2289q2yp81tuge82fty501h created_on: 2010-09-16 14:48:41 last_login: 2010-10-27 15:49:44
这样看起来就更舒服一点。
5、启用Tab键自动完成功能
重复输入表名和字段名无疑是很乏味的,给mysql客户端传递一个--auto-rehash参数,或是在my.ini文件中添加下面的命令来启用Tab键自动完成功能。
[mysql] auto-rehash
6、改变提示符
我不止一次想查看或修改被告知表不存在的模式,遇到这种情况我常常会很恐惧,大多数时候我登错数据库,导致错误地删除不该删除的表,通过修改MySQL客户端提示符,让它显示当前操作的数据库名字,从而避免误操作,为了让mysql客户端具备这种交互性,登录后执行下面的命令即可:
mysql>prompt [d]> [dev_wjgilmore_com]>
你可能希望永久保持这种效果,简单,只需要将下面的命令添加到你的配置文件中即可:
prompt = [d]>
当然不仅限于提示数据库名字,还可以显示当前日期和时间,主机名和用户名,请阅读MySQL手册了解更全面的信息。
7、使用安全更新预防灾难
前面我也提到,当表被意外删除时可能会引起恐惧,我相信不止我一个人有类似的经历,除了不小心执行了DROP TABLE外,更让人崩溃的是忽略WHERE子句的UPDATE命令,例如,假设你想使用下面的命令修改用户的用户名:
mysql>UPDATE users set User = 'wjgilmore' WHERE User = 'wjgilmore-temp';
但当你冲忙地想出去吃饭时,可能忘记敲入后面的WHERE子句
mysql>UPDATE users set User = 'wjgilmore';
一旦你按下回车,后果就很严重,users表中所有用户的用户名全部被修改为wjgilmore了,为了避免这种低级,但又会带来灾难性后果的错误,请在配置文件中添加下面的命令:
safe-updates
8、使用命令文档
许多用户都知道mysql客户端的内置文档,输入help命令时,它会显示一长串的命令列表。
mysql>help
... List of all MySQL commands: Note that all text commands must be first on line and end with ';' ? (?) Synonym for `help'. clear (c) Clear the current input statement. connect (r) Reconnect to the server. Optional arguments are db and host. delimiter (d) Set statement delimiter. ...
如果你不知道DESCRIBE命令如何使用,只需要输入
mysql>help describe;
Name: 'DESCRIBE' Description: Syntax: {DESCRIBE | DESC} tbl_name [col_name | wild] DESCRIBE provides information about the columns in a table. It is a shortcut for SHOW COLUMNS FROM. These statements also display information for views. (See [HELP SHOW COLUMNS].) ...
9、使用Pager
有时你可能想查看表的某一行数据,但在屏幕上往往会显示满屏的数据,除了使用LIMIT子句外,开启客户端pager,设置你的系统分页实用程序:
mysql>pager more PAGER set to 'more'
如果要禁用pager,执行nopager命令即可。
10、将输出内容转储到文件
你可能偶尔需要将SQL执行结果输出到一个文本文件,可以使用SELECT INTO OUTFILE command命令达到目的,或直接在mysql客户端中启用tee命令,并制定输出文件实现同样的功能,如:
mysql>tee sales_report.txt
小结
不管你是挑选其中一部分还是尝试这10个技巧,它们都会为你节省大量的时间和精力,并会减轻你的痛苦,如果你知道其它MySQL命令行技巧,不妨在评论中一起分享一下吧!
以上十个方法来自:http://www.searchdatabase.com.cn/showcontent_43297.htm
[转]使用tee记录mysql client 所有的操作,十个节省时间的mysql命令的更多相关文章
- 十个节省时间的MySQL命令
十个节省时间的MySQL命令 2011-02-23 16:07 黄永兵 译 IT168 字号:T | T 编者在工作中积累起来了一些MySQL命令行客户端技巧,这些技巧或多或少会帮助您节省大量的时间. ...
- centos6 只安装mysql client(安装包安装和yum安装mysql)
方法一下载安装: 1.在/home创建mysql目录,下载如下四个软件包 http://mirrors.sohu.com/mysql/MySQL-5.7/ wget http://mirrors.so ...
- Mysql基本类型(五种年日期时间类型)——mysql之二
转自:<MySQL技术内幕:时间和日期数据类型> http://tech.it168.com/a2012/0904/1393/000001393605_all.shtml
- mysql安装后,过一段时间,在命令行无法启动
这种问题主要是MYsql没有启动起来,可以在启动管理中开启mysql此服务即可解决
- How to Allow MySQL Client to Connect to Remote MySql
How to Allow MySQL Client to Connect to Remote MySQ By default, MySQL does not allow remote clients ...
- mysql基础-数据库初始化操作必要步骤和客户端工具使用-记录(二)
0x01 mysql启动时,读取配置文件的顺序 Default options are read from the following files in the given order:/etc/my ...
- MySQL日常应用和操作记录
整理MySQL日常操作. 1.知道一个字段名,怎样查到它在数据库里的哪张表里? USE Information_schema;SELECT TABLE_NAME FROM COLUMNS WHERE ...
- 编译pure-ftpd时提示错误Your MySQL client libraries aren't properly installed
如果出现类似configure: error: Your MySQL client libraries aren’t properly installed 的错误,请将mysql目录下的 includ ...
- configure: error: Cannot find libmysqlclient under /usr Note that the MySQL client library is not bundled anymore! 报错解决
错误说明 今天在centos 6.3 64位版本上安装PHP5.4.3时在./configure 步骤的时候出现了下面错误configure: error: Cannot find libmysqlc ...
随机推荐
- quartz定时任务-job
1,首先添加对quartz组建的引用 quartz-2.2.3.jar,slf4j-api-1.7.7.jar https://files.cnblogs.com/files/renjing/quar ...
- require.js Javascript模块化
浏览器端的模块,不能采用"同步加载"(synchronous),只能采用"异步加载"(asynchronous).这就是AMD规范诞生的背景. AMD是&quo ...
- springboot(六)SpringBoot问题汇总
SpringBoot2.0整合Mybatis,取datetime数据类型字段出来时,发现少了8小时. 过程:mysql中注册时间查询出来结果是正确的,只是java程序运行出来后显示少了8小时.经前辈指 ...
- VUE2.0 饿了吗视频学习笔记(七-终):compute,循环,flex,display:table
一.star组件使用到了computed属性 computed相当于属性的一个实时计算,当对象的某个值改变的时候,会进行实时计算. computed: { starType() { return 's ...
- Linux 4.10.8 根文件系统制作(一)---环境搭建
一.工具 制作工具为busybox 下载地址:https://busybox.net/ 解压: 二.制作文件系统 进入目录,执行make menuconfig: 2.1 busybox setting ...
- 前序遍历and中序遍历and后序遍历
根据根节点的出现的时间确定前.中.后遍历. 1: 前序遍历首先访问根结点然后遍历左子树,最后遍历右子树.在遍历左.右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树. 前序遍历结果:ABDEC ...
- NULL、0、nullptr的区别
某些时候,我们需要将指针赋值为空指针,以防止野指针. 有人喜欢使用NULL作为空指针常量使用,例如:int* p = NULL;. 也有人直接使用0值作为空指针常量,例如:int* p = 0;. ...
- [HNOI2009]最小圈 (二分答案+负环)
题面:[HNOI2009]最小圈 题目描述: 考虑带权的有向图\(G=(V,E)\)以及\(w:E\rightarrow R\),每条边\(e=(i,j)(i\neq j,i\in V,j\in V) ...
- ViewPager制作APP引导页+若干动画效果
ViewPager使用FragmentStatePagerAdapter做Adapter,引导页使用多Fragment形式. 见http://www.cnblogs.com/bmbh/p/567276 ...
- Jetson tx1 安装ROS
注意,是 Jetson TX1 系统版本: R24.2 参考链接: https://www.youtube.com/watch?v=-So2P0kRYsk