25.mysql中的常用工具
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中的常用工具的更多相关文章
- MySQL中的常用工具
一.mysql 客户端连接工具 二.myisampack MyISAM表压缩工具 三.mysqladmin MySQL管理工具 四.mysqlbinlog 日志管理工具 五.mysqlcheck My ...
- 【Java基础】Java开发过程中的常用工具类库
目录 Java开发过程中的常用工具类库 1. Apache Commons类库 2. Guava类库 3. Spring中的常用工具类 4. 其他工具 参考 Java开发过程中的常用工具类库 1. A ...
- Mysql中的常用函数:
Mysql中的常用函数: 1.字符串函数: (1).合并字符串 concat():// concat('M','y',"SQL",'5.5');== MySQL5.5//当传入的参 ...
- commons-lang3-3.2.jar中的常用工具类的使用
这个包中的很多工具类可以简化我们的操作,在这里简单的研究其中的几个工具类的使用. 1.StringUtils工具类 可以判断是否是空串,是否为null,默认值设置等操作: /** * StringUt ...
- 【spring】spirng中的常用工具类
一.概述 很多时候,很多工具类其实spring中就已经提供,常用的工具类有: 参考:https://www.cnblogs.com/langtianya/p/3875103.html 内置的resou ...
- MySQL中优化常用的查询sql语
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索 ...
- Shell 编程中的常用工具
文件查找 find 命令 语法格式 find命令总结: 常用选项: -name 查找/etc目录下以conf结尾的文件 find /etc -name "*.conf" -inam ...
- Mysql中比较常用的两种存储引擎和事务
存储引擎:引擎(类似汽车上的发动机)决定了数据库的快慢,MySql中有20多个引擎,不同的存储引擎提供不同的存储机制.索引技巧.锁定水平.MYISAM存储引擎,INNODB存储引擎最出名.数据库的核心 ...
- 自己项目中PHP常用工具类大全分享
<?php /** * 助手类 * @author www.shouce.ren * */ class Helper { /** * 判断当前服务器系统 * @return string */ ...
随机推荐
- SQL Server 数据库中的几个常见的临界值
本文出处:http://www.cnblogs.com/wy123/p/6709520.html 1,SQL语句或者存储过程的最大长度(SQL字符串容量)是多少? 经常有人问,我的SQL语句是拼凑出来 ...
- javascript:getElementsByName td name
问题: 今天写动态生成HTML表格的时候需要用到统计td内的数据,在生成的时候设置了td的name属性,但是document.getElementsByName("tdname&quo ...
- swift中的UITextField
let userTF = UITextField(frame: CGRectMake(,,,)) userTF.backgroundColor = UIColor.redColor() // 输入框样 ...
- ubuntu上安装mysql的正确步骤
1.在Ubuntu software Center中下载mysql:[注:mysql下载下来后好像就安装上了] 2.使用命令检查mysql是否已安装上: 2.1 运行sudo netstat -tap ...
- python列表中,多次追加元素
在列表中追加元素,可以使用append(),列表相加也可以用extend()函数,多次追加元素可以用“+”实现 l=[1,2,3,4,5] x=6 y=7 z=8 l=l+[x]+[y]+[z] pr ...
- k8s operator
https://coreos.com/blog/introducing-operators.html Site Reliability Engineer(SRE)是通过编写软件来运行应用程序的人员. ...
- php请求php
function post2($url, $data){//file_get_content $postdata = http_build_query( $data ); $opts = array( ...
- 10.18号java课后动手动脑
问题一结论:类如果提供了一个自定义的构造方法,将导致系统不再提供默认构造方法. 问题二结论:(1)程序运行的结果是100和300,field=200为类的初始化块,可以在类中使用“{”和“}”将语句包 ...
- 用jQuery实现轮播图效果,js中的排他思想
---恢复内容开始--- jQuery实现轮播图不用单独加载. 思路: a. 通过$("#id名");选择需要的一类标签,获得一个伪数组 b.由于是伪数组的原因,而对数组的处理最多 ...
- react input的几个坑
[react input的几个坑] 1.input标签中设置value后,input进入controlled模式,valuechange由自动变为手动,导致input无法编辑.如: <input ...