3.5 在批处理模式下使用mysql

在前面的章节中,你交互式地使用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”

时间: 2024-10-25 21:47:41

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

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

A.window下的语句 1.mysqld -install     //安装mysql服务 2.mysqld -remove //卸载mysql服务 3.net start mysql //启动服务 4.net stop mysql //停止服务 5.mysql -u root -p //登录 6.mysqladimn -u root -p PASSWORD 123456 //为新用户设置密码 B.mysql下(加分号) 1.exit或quit; //退出 2.show databases;

cmd模式下,mysql输入和显示中文乱码或者不显示的解决办法

查资料说明cmd客户端的字符集是gb2312,结果集也要设置为gb2312. 使用语句 set character_set_client=gb2312; set character_set_results=gb2312; 就可以解决问题.

linux环境下搭建MySQL数据库的双击热备

准备服务器 由于Mysql不同版本之间的(二进制日志)binlog格式可能会不太一样,因此最好的搭配组合是主(Master)服务器的Mysql版本和从(Slave)服务器版本相同或者更低,主服务器的版本肯定不能高于从服务器版本.本次我用于测试的两台服务器版本都是Mysql-5.5.17. Mysql 建立主-从服务器双机热备配置步骤 2.1环境描述A服务器(主服务器Master):59.151.15.36B服务器(从服务器Slave):218.206.70.146主从服务器的Mysql版本皆为5

MySQL 解密 --&gt; 如何查看二进制日志ROW模式下最原始的SQL语句

MySQL的binlog的ROW模式解析          在mysql5.6以后,对主从数据一致性要求变高了,statement格式逐渐不太适合业务的需求了,所以生产环境大家都采用了row模式,row模式是传输最底层的数据变化的insert的模块来进行主从数据的传输,那么在binlog里面就和普通的statement模式有何差别?能否看到最原始的sql语句呢? 1.准备录入数据 mysql> create table test1(id int,c1 varchar(20),type int,a

SAS vs SSD各种模式下MySQL TPCC OLTP对比测试结果

在各种测试组合方案中,组合10(组合10:SSD * 2, RAID 0, XFS,WB,nobarrier,noop)的综合性能最高,因此以它为基准,其他方案与其对比,下表是各组合和组合10的对比: 相应的对比线形图: 测试环境: 结语1. 在xfs文件系统模式下,SSD设备的性能是SAS设备性能的6 ~ 13倍,平均:9倍,在并发16线程时最高(和MySQL的内部机制有关):2. SSD设备使用noop模式的IO调度器效率最高(关于Linux内核IO调度器详见:http://www.redh

MySQL 5.7 GTID模式下 skip 1032 Error

一个偶然的事情,线上一部MySQL slave 被人误删了数据,然后又在 master上执行了同样的 delete 操作,导致从库报了1032错误. 其实这种情况下,如果能将缺少的记录重新insert 进去,再 start slave就可以完美解决: 问题在于不知道他具体操作了什么数据,所以想直接跳过这个事务. 脑海里回想了下GTID模式下跳过1032 的步骤,大概步骤是: mysql> SET @@SESSION.GTID_NEXT= '4ab8feff-5272-11e8-9320-0800

mysql交互模式下执行sql文件

进入到mysql交互模式下, 创建库: create database my_database default charset utf8 collate utf8_general_ci; 进入自己的库: use my_database; 执行sql文件语句: source table.sql ; 注意事项:mysql交互模式需要在weixin.sql文件同级目录下打开. 原文地址:https://www.cnblogs.com/qxh-beijing2016/p/12512428.html

mysql 在row模式下truncate 与 delete 二进制日志记录的差异

二进行日志的格式为row mysql> show variables like 'binlog_format'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | binlog_format | ROW | +---------------+-------+ 1 row in set (0.00 sec) 在testdb库下执行 mysql> select * from t1; +--

Windows 2003 IIS下配置MySQL+PHP+ISAPI_Rewrite+Zend+Xcache

Windows 2003 IIS下配置MySQL+PHP+ISAPI_Rewrite+Zend+Xcache zend  mysql  php  iis  windows  extension 一.准备工作 windows 2003,自己买吧... 安装IIS 6.0:安装系统后在"控制面板"->"添加或删除程序"->"添加/删除Windows组件"->双击"应用程序服务器"->然后选中"In