zoukankan      html  css  js  c++  java
  • 25.mysql中的常用工具

    25.mysql中的常用工具
    25.1 mysql客户端连接工具
    跳转至mysql安装目录下的bin
    cd C:Program FilesMySQLMySQL Server 5.7in
    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:工作内容mysqlmysql_scott_data.sql

    mysql>use scott;
    mysql>set names utf8;
    mysql>source C:工作内容mysqlmysql_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 小结

  • 相关阅读:
    二叉搜索树
    【树】List Leaves
    模板——dijkstra单源最短路
    余数求和——除法分块
    倍增——ST表
    线段树——内存池
    线段树——模板
    洛谷 P1498 南蛮图腾
    洛谷 P2199 最后的迷宫
    洛谷 P1495 中国剩余定理
  • 原文地址:https://www.cnblogs.com/BradMiller/p/10246406.html
Copyright © 2011-2022 走看看