25.mysql中的常用工具
25.1 mysql客户端连接工具
跳转至mysql安装目录下的bin
cd C:\Program Files\MySQL\MySQL Server 5.7\bin
mac下
cd /usr/local/Cellar/mysql@5.7/5.7.22/bin
cd /usr/local/mysql/bin

mysql [选项] [database]; --连接数据库
use [dbname]; --进入要操作的数据库
选项表达方式语法:
“-”+选项单词的缩写字符+选项值 例子:mysql -uroot
“--”+选项完整单词+“=”+选项值 例子:mysql --user=root
多个选项时用逗号分隔,否则只有一个选项有效。
25.1.1 连接选项
指定服务器IP或域名 -h,--host=IP或host_name
指定服务器端口号 -P,--port=3306
指定连接用户名 -u,--user=user_name
指定用户密码 -p,--password=user_password
语法:
mysql -h IP地址 -P 端口号 -u 用户名 -p密码
说明:
-h空格后为本地数据库IP地址(localhost),
-P空格后端口号
-u空格后为用户名,
-p后(不能有空格)为用户密码,
退出登录:exit
例子:
mysql -h 192.168.7.245 -P 25006 -u root -puniGroup-321
mysql -h 192.168.7.246 -P 3306 -u root -puniGroup-321
mysql -h stage-mysql.c5immry9azen.rds.cn-north-1.amazonaws.com.cn -P 3306 -u stageprisvq7zv5l -paeP5high70fd3lgc
特例:
没有选项时,默认'空用户'@'localhost'和空密码连接本机的3306端口,
如果没有空用户时,使用my.cnf文件找[client]组内的用户名和密码,
如果my.cnf文件内没有用户名和密码时,系统使用'root'@'localhost'登录。
测试:
ERROR 1045 (28000):Access denied for user 'ODBC'@'localhost'(using password:NO)
查看当前登录的用户:
select current_user();

25.1.2 客户端字符集选项
服务器字符集配置在my.cnf文件的[mysqld]组内;
客户端字符集配置在my.cnf文件的[mysql]组内。
每次用客户端工具连接数据库时会自动使用my.cnf文件中配置的客户端字符集。
也可以在连接中手动指定本次连接使用的客户端字符集,
例子:
mysql -uroot -proot --default-character-set=gbk
该命令等价于
mysql -uroot -proot
set gbk charset;
查看字符集命令:
show variables like 'char%';
character_set_client 客户端字符集
character_set_connection 连接字符集
character_set_results 结果字符集
default-character-set选项会控制客户端字符集、连接字符集、结果字符集参数
mysql -uroot -proot --default-character-set=utf8
show variables like 'char%';
客户端字符集、连接字符集、结果字符集变更为utf8

25.1.3 执行选项
执行选项:直接在mysql客户端执行SQL语句,而不用等到连接上mysql数据库后再执行,
用于执行批处理脚本。
语法:-e, --execute=sql脚本
例子:
mysql -uroot -proot --execute="use scott;select count(1) from dept;"
语法:执行文件
mysql -u账号 -p密码 -D数据库名 < sql文件绝对路径
mysql -uroot -proot --default-character-set=utf8 scott < C:\工作内容\mysql\mysql_scott_data.sql

mysql>use scott;
mysql>set names utf8;
mysql>source C:\工作内容\mysql\mysql_scott_data.sql;

25.1.4 格式化选项
-E,--vertical 将输出方式按照字段顺序竖着显示
-s, --silent 去掉mysql中的线条框显示
例子:
mysql -uroot -proot -e "select deptno,dname,loc from dept;" -E
mysql -s -uroot -proot
mysql>select deptno,dname,loc from dept;

25.1.5 错误处理选项
-f,--force 强制执行SQL
-v,--verbose 显示更多信息
--show-warnings 显示警告信息
对于执行批量DML操作时,-f选项可以使报错不阻断进程;
-v选项可以显示执行日志,并输出报错信息;
--show-warnings可以输出警告信息。
例子:
mysql -uroot -proot -f -v --show-warnings db_name < a.sql > b.log

25.2 myisampack(MyISAM表压缩工具)
myisampack工具可以对MyISAM表进行压缩,但压缩后的表将变成只读表,不能进行DML操作。
语法:
myisampack [options] tab_name
例子:
myisampack emp

25.3 mysqladmin(Mysql管理工具)
mysqladmin [options] command [command-options] [command [command-options]]...
command包括:
create databasename
drop databasename
debug
extended-status
flush-hosts
flush-logs
flush-status
flush-tables
flush-threads
flush-privileges
kill id
ping
processlist
reload
refresh
shutdown
status
start-slave
stop-slave
variables
version
例子:
mysqladmin -uroot -p shutdown

25.4 mysqlbinlog(日志管理工具)
mysqlbinlog工具可以检查打开二进制binlog日志。
语法:
mysqlbinlog [options] log_files1,log_files2...
options选项包括:
-d,--database=db_name 指定数据库名
-o,--offset=n 指定偏移量,即忽略前n条数据
-r,--result-file=name 将binlog转化为文本输出到指定文件
-s,--short-form 显示为简单格式,即忽略部分信息
--set-charset=char-name 设置输出文本日志的字符集
--start-datetime= 指定开始时间
--stop-datetime= 指定结束时间
--start-position= 指定起始位置
--stop-position= 指定结束位置
例子:
mysqlbinlog binlog.000003
mysqlbinlog binlog.000003 -d test
mysqlbinlog binlog.000003 -o 3
mysqlbinlog binlog.000003 -r resultfile.txt
mysqlbinlog binlog.000003 -o 3 -s
mysqlbinlog binlog.000003 --start-datetime='2018-12-18 09:00:00' --stop-datetime='2018-12-18 10:00:00'
mysqlbinlog binlog.000003 --start-position='1' --stop-position=100

25.5 mysqlcheck(MyISAM表维护工具)
mysqlcheck工具可以检查修复MyISAM表,还可以优化、分析表。
mysqlcheck工具实际上是集成了mysql工具的check、repair、analyze、optimize功能。
语法:
mysqlcheck [options] db_name [tables] 检查一个库或多张表
mysqlcheck [options] --database db_name1 db_name2 ... 检查一个库或多个库
mysqlcheck [options] --all 检查所有库
options包含:
-c,--check 检查表
-r,--repair 修复表
-a,--analyze 分析表
-o,--optimize 优化表
例子:
mysqlcheck -uroot -c test
mysqlcheck -uroot -r test --Innodb引擎的表不支持修复操作
mysqlcheck -uroot -a test
mysqlcheck -uroot -o test

25.6 mysqldump(数据导出工具)
mysqldump工具用来备份数据库,备份内容包含建表语句和Insert语句。
语法:
mysqldump [options] db_name [tables] 备份一个库或多张表
mysqldump [options] --database db_name1 db_name2 ... 备份一个库或多个库
mysqldump [options] --all 备份所有库
mysqldump --help 帮助
25.6.1 连接选项
-h,--host= 指定服务器IP或机器名
-p,--port=3306 指定连接端口,默认3306
-u,--user= 指定用户名
-p,--password= 指定用户密码
例子:
mysqldump -h192.168.1.2 -p3306 -uroot -proot test>test.txt

25.6.2 输出内容选项
--add-drop-database 在create database语句前增加drop database语句
--add-drop-table 在create table语句前增加drop table语句
-n,--no-create-db 不包含create database语句
-t,--no-create-info 不包含create table语句,包含insert语句,即只导出数据
-d,--no-data 不包含insert语句,包含create table语句,即只导出表结构
例子:
mysqldump -h192.168.1.2 -p3306 -uroot -proot -d test emp>a.txt

25.6.3 输出格式选项
--compact 输出简洁格式,不包含注释语句
-c,--complete-insert insert语句包含完整字段名,默认不输出字段名
-T 指定备份目录,并将数据库或表导出为建表语句和数据文本两个文件
--fields-terminated-by= 指定导出数据的域分隔符
--fields-enclosed-by= 指定导出数据的域引用符
--fields-optionally-enclosed-by= 指定导出数据的域可选引用符
--fields-escaped-by= 指定导出数据的域转义字符

例子:
mysqldump -h192.168.1.2 -p3306 -uroot -proot --compact test emp>a.txt
mysqldump -h192.168.1.2 -p3306 -uroot -proot -c test emp>a.txt
mysqldump -h192.168.1.2 -p3306 -uroot -proot test emp -T>a.txt

25.6.4 字符集选项
如果客户端字符集与数据库字符集不一致时,数据库在导出时会进行字符集转换,将数据库字符集转换为客户端字符集。
转换后的数据可能包含?等符号,使得备份文件不能用来恢复。
--default-character-set= 设置导出客户端字符集
通过--default-character-set= 选项将客户端字符集设置的和服务器字符集一致,将不会发生字符集转换,不会产生乱码。
查看默认客户端字符集命令:
mysqld --verbose --help|grep 'default-character-set'|grep -v name default-character-set gbk
例子:
mysqldump -h192.168.1.2 -p3306 -uroot -proot --default-character-set=latin1 test emp >a.txt

25.6.5 其他常用选项
-F,--flush-logs 备份前刷新日志,即更换日志文件,强制让现有redo log入库,减少恢复时通过redo log恢复数据。
-l,--lock-tables 给所有表增加读锁,即整个库禁止DML操作

25.7 mysqlhotcopy(MyISAM表热备份工具)
mysqlhotcopy是Perl脚本,用来备份MyISAM表。
优点:快速、热备份。
缺点:只能备份MyISAM表、需要运行在Linux环境、需要安装Perl。
需要安装Perl的Mysql数据库接口包perl-DBD-MySQL-2.9004-3.1.src.rpm,还需要安装依赖的Mysql开发包MySQL-devel-community-5.0.41.rhe14.i386.rpm。
安装过程如下:
使用root用户登录,
执行rpm -i perl-DBD-MySQL-2.9004-3.1.src.rpm命令,生成.spec文件/usr/src/redhat/SPECS/perl-BDB-MySQL.spec,
执行rpmbuild -bb perl-BDB-MySQL.spec命令,将.spec文件编译为RPM安装文件/usr/src/redhat/RPMS/i386/perl-DBD-MySQL-2.9004-3.1.i386.rpm,
安装生成的.rpm包,rpm ivh perl-DBD-MySQL-2.9004-3.1.i386.rpm,至安装完成。
mysqlhotcopy语法:
# mysqlhotcopy db_name [/path/to/new_directory]
# mysqlhotcopy db_name_1...db_name_n [/path/to/new_directory]
例子:
# mysqlhotcopy -u root mysql ./backup/
mysqlhotcopy过程包括:锁表lock tables,刷新表flush tables,拷贝文件cp/scp,释放锁unlock tables。
mysqlhotcopy常用选项:
--allowold 如果备份路径下有同名备份,则将旧的备份目录rename为“目录名_old”
--addtodest 如果备份路径下有同名目录,则将新的文件加入目录
--noindices 不备份所有的索引文件
--flushlog 表被锁定后刷新日志
--help mysqlhotcopy的帮助

25.8 mysqlimport(数据导入工具)
mysqlimport用来导入mysqldump -T选项导出的数据文本文件。
通过load data infileql语句的命令行接口导入,与load data infile命令一致。
mysqlimport语法:
mysqlimport [options] db_name textfile1 [textfile2]

25.9 mysqlshow(数据库对象查看工具)
mysqlshow工具用来查找数据库、表、列、索引等对象。
mysqlshow语法:
mysqlshow [options] [db_name [table_name [col_name]]]
options选项
--count 显示数据库和表的统计信息
-k,--keys 显示指定表的表结构和表的索引信息
-i,--status 显示指定表的状态信息
例子:
mysqlshow -uroot 查询所有的数据库
mysqlshow -uroot --count 查询所有数据库的名称、表数量、记录量
mysqlshow -uroot test --count 查询test数据库的表名称、字段数、记录量
mysqlshow -uroot test emp --count 查询test数据库emp表的字段信息
mysqlshow -uroot test emp --keys 查询test数据库emp表的表结构和表的索引信息
等同于show full columns from emp 和show index from emp
mysqlshow -uroot test emp --status 查询test数据库emp表的统计信息,包括:行数、平均行长度、数据长度等。
等同于show table status from test like 'emp'

25.10 perror(错误代码查看工具)
perror工具可以解释错误代码的详细含义。
perror语法:
perror [options] [errorcode [errorcode]]
例子:
perror 30 60

25.11 replace(文本替换工具)
replace是Mysql自带的对文件字符串替换的工具。
语法:
replace from to [from to]... --file [file]...
replace from to [from to]... <file
说明:
-- 覆盖方式,指用指定的替换模式替换文件中的内容。
< 非覆盖方式,指在标准输出(屏幕)上输出文件内容被指定替换模式替换后的结果,并不修改文件的内容。
例子:
replace a A b B -- C.txt 将C.txt文件内的a替换为A,b替换为B。
replace a A b B < C.txt C.txt文件内容输出在屏幕上时将a替换为A,b替换为B,而C.txt文件内容保持不变。

25.12 小结

25.mysql中的常用工具的更多相关文章

  1. MySQL中的常用工具

    一.mysql 客户端连接工具 二.myisampack MyISAM表压缩工具 三.mysqladmin MySQL管理工具 四.mysqlbinlog 日志管理工具 五.mysqlcheck My ...

  2. 【Java基础】Java开发过程中的常用工具类库

    目录 Java开发过程中的常用工具类库 1. Apache Commons类库 2. Guava类库 3. Spring中的常用工具类 4. 其他工具 参考 Java开发过程中的常用工具类库 1. A ...

  3. Mysql中的常用函数:

    Mysql中的常用函数: 1.字符串函数: (1).合并字符串 concat():// concat('M','y',"SQL",'5.5');== MySQL5.5//当传入的参 ...

  4. commons-lang3-3.2.jar中的常用工具类的使用

    这个包中的很多工具类可以简化我们的操作,在这里简单的研究其中的几个工具类的使用. 1.StringUtils工具类 可以判断是否是空串,是否为null,默认值设置等操作: /** * StringUt ...

  5. 【spring】spirng中的常用工具类

    一.概述 很多时候,很多工具类其实spring中就已经提供,常用的工具类有: 参考:https://www.cnblogs.com/langtianya/p/3875103.html 内置的resou ...

  6. MySQL中优化常用的查询sql语

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索 ...

  7. Shell 编程中的常用工具

    文件查找 find 命令 语法格式 find命令总结: 常用选项: -name 查找/etc目录下以conf结尾的文件 find /etc -name "*.conf" -inam ...

  8. Mysql中比较常用的两种存储引擎和事务

    存储引擎:引擎(类似汽车上的发动机)决定了数据库的快慢,MySql中有20多个引擎,不同的存储引擎提供不同的存储机制.索引技巧.锁定水平.MYISAM存储引擎,INNODB存储引擎最出名.数据库的核心 ...

  9. 自己项目中PHP常用工具类大全分享

    <?php /** * 助手类 * @author www.shouce.ren * */ class Helper { /** * 判断当前服务器系统 * @return string */ ...

随机推荐

  1. SQL Server 数据库中的几个常见的临界值

    本文出处:http://www.cnblogs.com/wy123/p/6709520.html 1,SQL语句或者存储过程的最大长度(SQL字符串容量)是多少? 经常有人问,我的SQL语句是拼凑出来 ...

  2. javascript:getElementsByName td name

    问题:    今天写动态生成HTML表格的时候需要用到统计td内的数据,在生成的时候设置了td的name属性,但是document.getElementsByName("tdname&quo ...

  3. swift中的UITextField

    let userTF = UITextField(frame: CGRectMake(,,,)) userTF.backgroundColor = UIColor.redColor() // 输入框样 ...

  4. ubuntu上安装mysql的正确步骤

    1.在Ubuntu software Center中下载mysql:[注:mysql下载下来后好像就安装上了] 2.使用命令检查mysql是否已安装上: 2.1 运行sudo netstat -tap ...

  5. python列表中,多次追加元素

    在列表中追加元素,可以使用append(),列表相加也可以用extend()函数,多次追加元素可以用“+”实现 l=[1,2,3,4,5] x=6 y=7 z=8 l=l+[x]+[y]+[z] pr ...

  6. k8s operator

    https://coreos.com/blog/introducing-operators.html Site Reliability Engineer(SRE)是通过编写软件来运行应用程序的人员. ...

  7. php请求php

    function post2($url, $data){//file_get_content $postdata = http_build_query( $data ); $opts = array( ...

  8. 10.18号java课后动手动脑

    问题一结论:类如果提供了一个自定义的构造方法,将导致系统不再提供默认构造方法. 问题二结论:(1)程序运行的结果是100和300,field=200为类的初始化块,可以在类中使用“{”和“}”将语句包 ...

  9. 用jQuery实现轮播图效果,js中的排他思想

    ---恢复内容开始--- jQuery实现轮播图不用单独加载. 思路: a. 通过$("#id名");选择需要的一类标签,获得一个伪数组 b.由于是伪数组的原因,而对数组的处理最多 ...

  10. react input的几个坑

    [react input的几个坑] 1.input标签中设置value后,input进入controlled模式,valuechange由自动变为手动,导致input无法编辑.如: <input ...