25.mysql中的常用工具

25.mysql中的常用工具
25.1 mysql客户端连接工具
跳转至mysql安装目录下的bin
cd C:\Program Files\MySQL\MySQL Server 5.7\bin
mac下
cd /usr/local/Cellar/[email protected]/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 小结

原文地址:https://www.cnblogs.com/BradMiller/p/10246406.html

时间: 2024-10-19 01:24:14

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

Mysql中的常用工具

mysql:客户端连接工具 -u, --user=name ????指定用户名 -p --password????????指定密码 -h –host=hostname 指定服务器IP或者域名 -P –port=????????????指定端口 当然也可以在配置文件中指定用户名和密码,这样就不需要连接加上参数 [client] user=root password=redhat -e, --execute=commands:commands????????执行SQL语句并退出 -E, --vert

mysql 性能优化常用工具

mysql 性能优化常用工具: 常用性能检测工具 show engine innodb  status show full processlist information_schema.processlist explain create table innodb_table_monitor(a int) engine=innodb; innodb_locks innodb_lock_wait innodb_trx zabbix监控 pt-tools 工具 性能优化的两种方式: 1.执行计划的解

【spring】spirng中的常用工具类

一.概述 很多时候,很多工具类其实spring中就已经提供,常用的工具类有: 参考:https://www.cnblogs.com/langtianya/p/3875103.html 内置的resouce类型 UrlResource ClassPathResource FileSystemResource ServletContextResource InputStreamResource ByteArrayResource EncodedResource 也就是Resource加上encodi

mysql中最常用到的数据类型,约束条件,以及表,字段,行的crud操作指令,function和precedure之间的区别,索引,安全,事务

数据库总结 传统记录数据的缺点:不易保存,备份困难,查找不便 数据库:存储数据的仓库,描述一个事务的基本信息 优点:1.持久化存储 2.读写速度极高 3.保证数据的有效性 RDBMS relational database management system 军火当前主要使用两种类型的数据库:1.关系型数据库,2非关系型数据库 关系型数据库的主要产品: oracle:主要大型项目中使用,银行,电信等项目 mysql:web时代使用最广泛的关系型数据库 ms sql server: 微软的项目中使

支付系统中的常用工具

StringUtils.java 处理常用字符串:判断是否为空isEmpty(String value); 按字典排序并拼接参数:createLinkString(Map<String,String> params); 1 import java.util.ArrayList; 2 import java.util.Collections; 3 import java.util.List; 4 import java.util.Map; 5 6 public class StringUtils

angularJs中的常用工具方法

前面说过在angularJs中使用 angular.module() 法可创建一个angularJs模块.除此之外,angularJs还提供了一些工具方法供我们使用. angular.isArray() //判断传入的参数是不是数组,是则返回true 否则返回false angular.isDate() //判断传入的参数是不是时间对象,是则返回true,否则返回false angular.isFunction() //判断传入的参数是不是函数,是则返回true,否则返回false angula

第10篇 Java中的常用工具类

整理下这一周的最后一些内容.虽然东西不多,但以后也可以常回来看看. 个人感觉还是代码最好表达自己想要记忆的东西,不够的话再把注释加上.乱七八糟的概念百度上大同小异,只有代码是属于你自己的,是唯一的,也是你应该留下的. 包装类 我们所使用的一般数据类型,又称为值类型.这种数据类型存储在栈中,不属于对象的范畴.但Java是一门面向对象的语言,万物皆对象,自然不能把这些值类型排除在外,所以有了包装类. 所谓包装类,就是把我们所用到的值类型变量进行一个包装,使我们能通过对象的方式对其进行操作,让其有自己

java 线程之concurrent中的常用工具 CyclicBarrier

一.CyclicBarrier CyclicBarrier是一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point).在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用.因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier. CyclicBarrier类似于CountDownLatch也是个计数器, 不同的是CyclicBarrier数的是调用了CyclicBa

Mysql中的常用函数:

1.字符串函数: (1).合并字符串 concat():// concat('M','y',"SQL",'5.5');== MySQL5.5//当传入的参数有一个值为NULL,返回的结果值为NULL concat_ws();// 指定分隔符插入到字符串中:concat_ws(":",'2017','09');==2017:09,但如果分隔符是NULL的话,结果就为NULL,参数是NULL,不影响结果 (2).比较字符串大小的函数: select strcmp(字符串