在前面的章节中,你交互式地使用mysql输入查询而且查看结果。你也能够以批模式执行mysql。为了做到这些。把你想要执行的命令放在一个文件里,然后告诉mysql从文件读取它的输入:

shell> mysql < batch-file

假设你是在Windows系统下执行,而且你的文件里有一些可能会造成问题的特殊字符,你能够这么做:

C:\> mysql -e "source batch-file"

假设你须要在命令行上指定连接參数,命令应为:

shell> mysql -h host-u user-p < batch-file
Enter password: ********

当这样操作mysql时。你先创建了一个脚本文件。然后执行脚本。

假设你想继续执行这个脚本,即使脚本中的语句可能会产生一些错误,那么你就须要使用 –force命令行选项。

为什么使用脚本?有非常多原因:

  • 假设你须要反复执行查询(比方说,每天或每周),能够把它编成一个脚本。则每次执行时不必又一次键入。
  • 能够通过拷贝并编辑脚本文件从相似的现有的查询生成一个新查询。
  • 当你正在编写查询时,批模式也是非常实用的,特别对多行命令或多语句命令序列。

    假设你犯了一个错误。你不必又一次输入全部内容。仅仅须要编辑脚本来改正错误,然后告诉mysql再次执行脚本。

  • 假设你有一个产生多个输出的查询,你能够通过一个分页器而不是盯着它翻屏到屏幕的顶端来执行输出:
shell> mysql < batch-file| more
  • 你能够捕捉文件里的输出以便进行进一步的处理:
shell> mysql < batch-file> mysql.out
  • 你能够把你的脚本分发给其它人,那么他们也能够执行这些语句。

  • 某些情况不同意交互使用查询。比如, 当你从一个cron任务中执行查询时。在这样的情况下,你必须使用批模式。

当你以批模式执行mysql时。比起你交互地使用它时,其默认输出格式是不同的(更简明些)。比如,当交互式执行SELECT DISTINCT species FROM pet时,输出应为:

+---------+
| species |
+---------+
| bird |
| cat |
| dog |
| hamster |
| snake |
+---------+

可是当以批模式执行时,输出应为:

species
bird
cat
dog
hamster
snake

假设你想得到交互式的输出格式,使用 mysql -t. 为了回显以输出被执行的命令,使用mysql -vvv.

你还能够使用source命令或 .命令从mysql提示符中使用脚本:

mysql> source filename;
mysql> \. filename

很多其它内容请查看

Section 4.5.1.5, “Executing SQL Statements from a Text File”

3.5 在批处理模式下使用mysql的更多相关文章

  1. 非root模式下安装mysql php小记

    假设你的home目录为/home/work mysql-server 安装 1. 下载mysql.tar.gz wget http://dev.mysql.com/get/Downloads/MySQ ...

  2. 在cmd模式下对mysql的操作语句

    A.window下的语句 1.mysqld -install     //安装mysql服务 2.mysqld -remove //卸载mysql服务 3.net start mysql //启动服务 ...

  3. 非root模式下安装mysql

    1. 下载mysql.tar.gz wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.17.tar.gz 2. 下载cmake [ ...

  4. docker 容器模式下部署mysql 主从复制

    1.计划用两台host来部署,分别部署一台 mysql,一主一从,2.配置好主从mysql配置文件,更改文件名即可[client]port = 3306socket = /var/run/mysqld ...

  5. MySQL 8 批处理模式

    shell> mysql -h host -u user -p < batch-file 强制执行脚本,即使某些语句参数错误,可以添加 --force 参数 如果MySQL运行在Windo ...

  6. MySQL Binlog--MIXED模式下数据更新

    在 Mixed 模式下,MySQL 会根据执行的每一条具体的 SQL 语句来区分对待记录的日志形式,也就是在 statement 和 row 之间选择一种.如果SQL语句为UPDATE/DELETE等 ...

  7. windows下使用mysql双机热备功能

    一. 准备工作 1. 准备两台服务器(电脑),接入局域网中,使互相ping得通对方 2. 两台服务器都安装mysql-server-5.1,必须保证mysql的版本一致 3. 假设,服务器A:192. ...

  8. 在Hadoop伪分布式模式下安装Hive(derby,mysql)

    我的Hadoop版本是1.2.0,mysql版本是5.6.12. 先介绍一下嵌入式derby模式: 1.下载/解压 在hive官网上选择要下载的版本,我选择的版本是hive-0.10.0. 下载好解压 ...

  9. mysql READ-COMMITTED 模式下 行锁不会升级到表级锁

    mysql> select sn,id,info from s100 group by id; +-----+------+------+ | sn | id | info | +-----+- ...

随机推荐

  1. 转载--Beautifuisoup的使用

    转载自--http://mp.weixin.qq.com/s?src=11&timestamp=1520511185&ver=742&signature=KDzYoOg8Xd9 ...

  2. UVM基础之------uvm_port_base

    Port Base Classes    uvm_port_component_base    This class defines an interface for obtaining a port ...

  3. HP M177打印机驱动安装问题与解决

    问题描述 采购HP Color LaserJet Pro MFP M177 PCLmS一台,采用局域网WIFI网络与办公室各电脑连接.安装打印机自带光盘驱动,发现有些电脑安装驱动失败,提示“出现严重错 ...

  4. HTTP、HTTP1.0、HTTP1.1、HTTP2.0——笔记

    笔记来源地址:https://mp.weixin.qq.com/s/T2IErLDxbWP1a-VbRkZZHg HTTP: HTTP是WWW数据通信的基础,是应用层协议. HTTP是干什么的?用来给 ...

  5. 拒绝了对对象 'data'(数据库 'xxx',所有者 'dbo')的 SELECT 权限

    拒绝了对对象 'data'(数据库 'xxx',所有者 'dbo')的 SELECT 权限解决的方法:1>在数据库里相应的用户权限中,把db_denydatareader的复选框的勾去掉.很多初 ...

  6. Windows Socket五种I/O模型——代码全攻略(转)

    Winsock 的I/O操作: 1. 两种I/O模式 阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序.套接字 默认为阻塞模式.可以通过多线程技术进行处理. 非阻塞模式:执行I/O操 ...

  7. document.mozFullScreen

    非标准该特性是非标准的,请尽量不要在生产环境中使用它! 概述 返回一个布尔值,表明当前文档是否处于全屏模式. 语法 var isFullScreen = document.mozFullScreen ...

  8. 并发和多线程(二)--线程安全、synchronized、CAS简介

    线程安全性: 当多个线程访问一个类的时候,这个类始终表示出正确的行为,那么这个类是线程安全的. 无状态的对象一定是线程安全的,例如大部分service.dao.Servlet都是无状态的. 线程安全体 ...

  9. freemarker使用map替换ftl中相关值

    ftl文件demo01.ftl <html> <head> <title>Welcome!</title> </head> <body ...

  10. 巩固JavaSE基础--IDEA完成实战项目

    PS:学习完JavaSE基础后,需要有一个项目来测试自己的学习成果,并加以巩固.所以在这里,就让我们来学习下“一本糊涂账”项目吧.(此项目来源于Java自学网站) 项目完成效果图一览