mysql命令行各个参数解释

mysql命令行各个参数解释

http://blog.51yip.com/mysql/1056.html

 

 

Usage: mysql [OPTIONS] [database]   //命令方式
 -?, --help          //显示帮助信息并退出
 -I, --help          //显示帮助信息并退出
 --auto-rehash       //自动补全功能,就像linux里面,按Tab键出提示差不多,下面有例子

 -A, --no-auto-rehash  //默认状态是没有自动补全功能的。-A就是不要自动补全功能
 -B, --batch         //ysql不使用历史文件,禁用交互
 (Enables --silent)
 --character-sets-dir=name   //字体集的安装目录                    
 --default-character-set=name    //设置数据库的默认字符集
-c, --comments      保留注释,发送注释到mysql服务器,默认是 --skip-comments (discard comments)
MySQL 客户端在 5.7.7 之前,会默认把 comment 清除掉,如果需要在旧的客户端使用 hint,需要在启动客户端时加上 --comments 选项,例如 mysql -h 127.0.0.1 -P 4000 -uroot --comments
MySQL 客户端在 5.7.7 之后,不需要加-c选项
 -C, --compress      //在客户端和服务器端传递信息时使用压缩
 -#, --debug[=#]     //bug调用功能
 -D, --database=name //使用哪个数据库
 --delimiter=name    //mysql默认命令结束符是分号,下面有例子
 -e, --execute=name  //执行mysql的sql语句
 -E, --vertical      //垂直打印查询输出
 -f, --force         //如果有错误跳过去,继续执行下面的
 -G, --named-commands
 /*Enable named commands. Named commands mean this program's
 internal commands; see mysql> help . When enabled, the
 named commands can be used from any line of the query,
 otherwise only from the first line, before an enter.
 Disable with --disable-named-commands. This option is
 disabled by default.*/
 -g, --no-named-commands
 /*Named commands are disabled. Use \* form only, or use
 named commands only in the beginning of a line ending
 with a semicolon (;) Since version 10.9 the client now
 starts with this option ENABLED by default! Disable with
 '-G'. Long format commands still work from the first
 line. WARNING: option deprecated; use
 --disable-named-commands instead.*/
 -i, --ignore-spaces //忽视函数名后面的空格.
 --local-infile      //启动/禁用 LOAD DATA LOCAL INFILE.
 -b, --no-beep       //sql错误时,禁止嘟的一声
 -h, --host=name     //设置连接的服务器名或者Ip
 -H, --html          //以html的方式输出
 -X, --xml           //以xml的方式输出
 --line-numbers      //显示错误的行号
 -L, --skip-line-numbers  //忽略错误的行号
 -n, --unbuffered    //每执行一次sql后,刷新缓存
 --column-names      //查寻时显示列信息,默认是加上的
 -N, --skip-column-names  //不显示列信息
 -O, --set-variable=name  //设置变量用法是--set-variable=var_name=var_value
 --sigint-ignore     //忽视SIGINT符号(登录退出时Control-C的结果)
 -o, --one-database  //忽视除了为命令行中命名的默认数据库的语句。可以帮跳过日志中的其它数据库的更新。
 --pager[=name]      //使用分页器来显示查询输出,这个要在linux可以用more,less等。
 --no-pager          //不使用分页器来显示查询输出。
 -p, --password[=name] //输入密码
 -P, --port=#        //设置端口
 --prompt=name       //设置mysql提示符
 --protocol=name     //使用什么协议
 -q, --quick         //不缓存查询的结果,顺序打印每一行。如果输出被挂起,服务器会慢下来,mysql不使用历史文件。
 -r, --raw           //写列的值而不转义转换。通常结合--batch选项使用。
 --reconnect         //如果与服务器之间的连接断开,自动尝试重新连接。禁止重新连接,使用--disable-reconnect。
 -s, --silent        //一行一行输出,中间有tab分隔
 -S, --socket=name   //连接服务器的sockey文件
 --ssl               //激活ssl连接,不激活--skip-ssl
 --ssl-ca=name       //CA证书
 --ssl-capath=name   //CA路径
 --ssl-cert=name     //X509 证书
 --ssl-cipher=name   //SSL cipher to use (implies --ssl).
 --ssl-key=name      //X509 密钥名
 --ssl-verify-server-cert //连接时审核服务器的证书
 -t, --table         //以表格的形势输出
 --tee=name          //将输出拷贝添加到给定的文件中,禁时用--disable-tee
 --no-tee            //根--disable-tee功能一样
 -u, --user=name     //用户名
 -U, --safe-updates  //Only allow UPDATE and DELETE that uses keys.   放在/etc/my.cnf里  防止update 和delete不加where ,要删全表数据要加where 1=1  优化班第10期
 -U, --i-am-a-dummy  //Synonym for option --safe-updates, -U.
 -v, --verbose       //输出mysql执行的语句
 -V, --version       //版本信息
 -w, --wait          //服务器down后,等待到重起的时间
 --connect_timeout=# //连接前要等待的时间
 --max_allowed_packet=# //服务器接收/发送包的最大长度
 --net_buffer_length=# //TCP / IP和套接字通信缓冲区大小。默认为16KB
 --select_limit=#    //使用--safe-updates时SELECT语句的自动限制
 --max_join_size=#   //使用--safe-updates时联接中的行的自动限制
 --secure-auth       //拒绝用(pre-4.1.1)的方式连接到数据库
 --server-arg=name   //Send embedded server this as a parameter.
 --show-warnings     //显示警告



                      


https://time.geekbang.org/column/article/79026

mysql -h127.0.0.1 -uxx -pxx  db1
reading table information for completion of table and column names
you can turn off this  feature to  get  a quicker startup with -A


一个库里有 6 万个表
--auto-rehash       //自动补全功能,就像linux里面,按Tab键出提示差不多,下面有例子,不要用,加了一个表,加了一个库,加了一个字段都重新rehash一次,客户端经常卡死
-A, --no-auto-rehash  //默认状态是没有自动补全功能的。-A就是不要自动补全功能
MySQL 客户端会提供一个本地库名和表名补全的功能。为了实现这个功能,客户端在连接成功后,需要多做一些操作:
1.执行 show databases;
2.切到 db1 库,执行 show tables;
3.把这两个命令的结果用于构建一个客户端本地的哈希hash表。

在这些操作中,最花时间的就是第三步在本地构建哈希表的操作。所以,当一个库中的表个数非常多的时候,这一步就会花比较长的时间。

也就是说,我们感知到的连接过程慢,其实并不是连接慢,也不是服务端慢,而是客户端慢。

图中的提示也说了,如果在连接命令中加上 -A,就可以关掉这个自动补全的功能,然后客户端就可以快速返回了。
这里自动补全的效果就是,你在输入库名或者表名的时候,输入前缀,可以使用 Tab 键自动补全表名或者显示提示。
实际使用中,如果你自动补全功能用得并不多,我建议你每次使用的时候都默认加 -A。


mysql 8.0.28 安装包包含的工具

重要工具

mysql
mysqld

mysqladmin
mysqlbinlog

mysqld_safe 守护进程
mysqldump 单线程备份
mysqlpump 多线程备份
mysqlimport 导入文件 为LOAD DATA SQL语句提供了一个命令行。实际环境基本不使用。
mysqldumpslow 慢日志
mysqlshow 库,表,字段信息show命令
mysqlslap 基准测试
mysql_upgrade 升级 (mysql8.0已结弃用)

mysqlcheck 检查工具

mysql_ssl_rsa_setup 密钥认证方式
my_print_defaults /etc/my.cnf打印信息
mysql_migrate_keyring keyring组件直接迁移密钥
mysql_secure_installation 安全配置向导
mysql_config 编译mysql客户端,是一个shell脚本
mysql_config_editor 安全加密登录工具
ibd2sdi ibd文件数据字典解析,生成的json文件,唯一索引没有标识
innochecksum innodb表空间文件完整性检查
lz4_decompress lz4压缩    mysqlpump这是使用压缩创建的输出。mysqlpump --compress -output=LZ4  
zlib_decompress zlib压缩    mysqlpump这是使用压缩创建的输出。 mysqlpump --compress -output=ZLIB
mysqld-debug 调试mysql
mysql_tzinfo_to_sql 时区导入
perror 显示mysql错误信息 错误码

 

 




usr/local/mysql/bin/mysql*
-rwxr-xr-x. 1 7161 31415  17530059 Dec 18 01:50 /usr/local/mysql/bin/mysql
mysql命令行客户端



-rwxr-xr-x. 1 7161 31415  16012633 Dec 18 01:50 /usr/local/mysql/bin/mysqladmin
mysql管理工具  



-rwxr-xr-x. 1 7161 31415  21568170 Dec 18 01:50 /usr/local/mysql/bin/mysqlbinlog
binlog解释工具



-rwxr-xr-x. 1 7161 31415  16172750 Dec 18 01:50 /usr/local/mysql/bin/mysqlcheck
mysqlcheck是用来 检查,分析,优化,修复表的。
mysqlcheck只有在mysql数据库运行的状态下才可运行
mysqlcheck其实就是CHECK TABLE, REPAIR TABLE, ANALYZE TABLE, OPTIMIZE TABLE的操作集合,
利用指定参数将对于的SQL语句发送到数据库中进行执行。同样对于那些存储引擎的的支持,也受对于表维护SQL语句的限制。(如check 则不支持MEMORY表, repair 则不支持 InnoDB表,不能修复innodb表只能check一下)
mysqlcheck的功能类似myisamchk,但其工作不同于MyISAM表维护工具

命令格式
Usage: mysqlcheck [OPTIONS] database [tables]

OR mysqlcheck [OPTIONS] –databases DB1 [DB2 DB3…]

OR mysqlcheck [OPTIONS] –all-databases
mysqlcheck –help

【options】常用连接参数

-u, –user=name —-连接mysql的用户

-p, –password[=name] —-连接mysql用户的密码

-P, –port=# —-连接mysql用户的端口

-h, –host=name —-连接mysql的主机名或IP,默认localhost本地

命令参数 command 详解

-A, –all-databases —选择所有的库

-a, –analyze —分析表

-B, –databases —选择多个库

-c, –check —检查表

-o, –optimize —优化表

-C, –check-only-changed —最后一次检查之后变动的表

-auto-repair —自动修复表

-g, –check-upgrade —检查表是否有版本变更,可用 auto-repair修复

-F, –fast —只检查没有正常关闭的表

-f, –force —忽悠错误,强制执行

-e, –extended —表的百分百完全检查,速度缓慢

-m, –medium-check —近似完全检查,速度比 –extended稍快

-q, –quick —最快的检查方式,在repair 时使用该选项,则只会修复 index tree

-r, –repair —修复表

-s, –silent —只打印错误信息

-V, –version —显示版本

f

-A, –all-databases —选择所有的库
-B, –databases —选择多个库
-c, –check —检查表


检查特定数据库my_db库 中的表:
[root@test_mysql_6 tmp]# /usr/local/mysql/bin/mysqlcheck -c  -uroot -p  -S /data/mysql/mysql3306/tmp/mysql.sock  testdb
Enter password: 
testdb.busi_table                                  OK
testdb.class                                       OK
testdb.fulltext_test
Warning  : InnoDB: Index content_tag_fulltext is marked as corrupted
error    : Corrupt
testdb.repo_table                                  OK
testdb.student                                     OK
testdb.teacher                                     OK

数据库如何实现utf8到utf8mb4转换

set names utf8mb4;
alter database database_name character set =utf8mb4 collate=utf8mb4_unicode_ci;
alter table table_name convert to character set utf8mb4 collate utf8mb4_unicode_ci;
REPAIR TABLE table_name;
OPTIMIZE TABLE table_name;

mysqlcheck  -u root -p  -S /data/mysql/mysql3306/tmp/mysql.sock  --auto-repair  --optimize  --all-databases

 

 

 


-rwxr-xr-x 1 mysql mysql 5579494 Dec 18 2021 /usr/local/mysql/bin/innochecksum
innochecksum是一个用于校验innodb表空间文件完整性的工具,必须关闭mysqld进程。也只有在mysqld进程会异常退出,或者服务器宕机的时候用于快速检查表空间文件的完整性。进一步也可以分析page。

shell> innochecksum --count ./t11.ibd
Number of pages:7
shell> innochecksum --page-type-summary ./t11.ibd
shell> innochecksum --page-type-dump=/tmp/ibd.log ./t11.ibd
Filename::./t11.ibd
==============================================================================
PAGE_NO | PAGE_TYPE | EXTRA INFO
==============================================================================
#:: 0 | File Space Header | -
#:: 1 | Insert Buffer Bitmap | -
#:: 2 | Inode page | -
#:: 3 | SDI Index page | index id=18446744073709551615, page level=0, No. of records=2, garbage=0, -
#:: 4 | Index page | index id=181, page level=0, No. of records=1, garbage=0, -
#:: 5 | Freshly allocated page | -
#:: 6 | Freshly allocated page | -

 

 

 



-rwxr-xr-x 1 mysql mysql 6929522 Dec 18 2021 /usr/local/mysql/bin/ibd2sdi

注意: 这个命令一次只能对一个ibd文件(一个表)进行解析,所以要对一个库下面所有ibd文件解析需要for循环!!!!!!!!!

注意:生成的json文件,唯一索引没有标识

Usage: /usr/local/mysql/bin/ibd2sdi [-c <strict-check>] [-d <dump file name>] [-n] filename1 [filenames]
-d, --dump-file=name
指定结果导出的文件,如果不指定这个参数则导出到标准输出

ibd2sdi工具的其他参数都有默认值,一般指定-d, --dump-file参数即可

导出来的json结果,单个表

/usr/local/mysql/bin/ibd2sdi /data/mysql/mysql3306/data/testdb/tt.ibd >/tmp/tt.json

[root@test_mysql_6 ~]# cat /tmp/tt.json

 

["ibd2sdi"
,
{
    "type": 1,
    "id": 362,
    "object":
        {
    "mysqld_version_id": 80028,
    "dd_version": 80023,
    "sdi_version": 80019,
    "dd_object_type": "Table",
    "dd_object": {
        "name": "tt",
        "mysql_version_id": 80028,
        "created": 20230520020259,
        "last_altered": 20230520020259,
        "hidden": 1,
        "options": "avg_row_length=0;encrypt_type=N;key_block_size=0;keys_disabled=0;pack_record=1;stats_auto_recalc=0;stats_sample_pages=0;",
        "columns": [
            {
                "name": "id",
                "type": 4,
                "is_nullable": true,
                "is_zerofill": false,
                "is_unsigned": false,
                "is_auto_increment": false,
                "is_virtual": false,
                "hidden": 1,
                "ordinal_position": 1,
                "char_length": 11,
                "numeric_precision": 10,
                "numeric_scale": 0,
                "numeric_scale_null": false,
                "datetime_precision": 0,
                "datetime_precision_null": 1,
                "has_no_default": false,
                "default_value_null": true,
                "srs_id_null": true,
                "srs_id": 0,
                "default_value": "",
                "default_value_utf8_null": true,
                "default_value_utf8": "",
                "default_option": "",
                "update_option": "",
                "comment": "",
                "generation_expression": "",
                "generation_expression_utf8": "",
                "options": "interval_count=0;",
                "se_private_data": "table_id=1063;",
                "engine_attribute": "",
                "secondary_engine_attribute": "",
                "column_key": 1,
                "column_type_utf8": "int",
                "elements": [],
                "collation_id": 255,
                "is_explicit_collation": false
            },
            {
                "name": "name",
                "type": 16,
                "is_nullable": true,
                "is_zerofill": false,
                "is_unsigned": false,
                "is_auto_increment": false,
                "is_virtual": false,
                "hidden": 1,
                "ordinal_position": 2,
                "char_length": 80,
                "numeric_precision": 0,
                "numeric_scale": 0,
                "numeric_scale_null": true,
                "datetime_precision": 0,
                "datetime_precision_null": 1,
                "has_no_default": false,
                "default_value_null": true,
                "srs_id_null": true,
                "srs_id": 0,
                "default_value": "",
                "default_value_utf8_null": true,
                "default_value_utf8": "",
                "default_option": "",
                "update_option": "",
                "comment": "",
                "generation_expression": "",
                "generation_expression_utf8": "",
                "options": "interval_count=0;",
                "se_private_data": "table_id=1063;",
                "engine_attribute": "",
                "secondary_engine_attribute": "",
                "column_key": 1,
                "column_type_utf8": "varchar(20)",
                "elements": [],
                "collation_id": 255,
                "is_explicit_collation": false
            },
            {
                "name": "DB_ROW_ID",
                "type": 10,
                "is_nullable": false,
                "is_zerofill": false,
                "is_unsigned": false,
                "is_auto_increment": false,
                "is_virtual": false,
                "hidden": 2,
                "ordinal_position": 3,
                "char_length": 6,
                "numeric_precision": 0,
                "numeric_scale": 0,
                "numeric_scale_null": true,
                "datetime_precision": 0,
                "datetime_precision_null": 1,
                "has_no_default": false,
                "default_value_null": true,
                "srs_id_null": true,
                "srs_id": 0,
                "default_value": "",
                "default_value_utf8_null": true,
                "default_value_utf8": "",
                "default_option": "",
                "update_option": "",
                "comment": "",
                "generation_expression": "",
                "generation_expression_utf8": "",
                "options": "",
                "se_private_data": "table_id=1063;",
                "engine_attribute": "",
                "secondary_engine_attribute": "",
                "column_key": 1,
                "column_type_utf8": "",
                "elements": [],
                "collation_id": 63,
                "is_explicit_collation": false
            },
            {
                "name": "DB_TRX_ID",
                "type": 10,
                "is_nullable": false,
                "is_zerofill": false,
                "is_unsigned": false,
                "is_auto_increment": false,
                "is_virtual": false,
                "hidden": 2,
                "ordinal_position": 4,
                "char_length": 6,
                "numeric_precision": 0,
                "numeric_scale": 0,
                "numeric_scale_null": true,
                "datetime_precision": 0,
                "datetime_precision_null": 1,
                "has_no_default": false,
                "default_value_null": true,
                "srs_id_null": true,
                "srs_id": 0,
                "default_value": "",
                "default_value_utf8_null": true,
                "default_value_utf8": "",
                "default_option": "",
                "update_option": "",
                "comment": "",
                "generation_expression": "",
                "generation_expression_utf8": "",
                "options": "",
                "se_private_data": "table_id=1063;",
                "engine_attribute": "",
                "secondary_engine_attribute": "",
                "column_key": 1,
                "column_type_utf8": "",
                "elements": [],
                "collation_id": 63,
                "is_explicit_collation": false
            },
            {
                "name": "DB_ROLL_PTR",
                "type": 9,
                "is_nullable": false,
                "is_zerofill": false,
                "is_unsigned": false,
                "is_auto_increment": false,
                "is_virtual": false,
                "hidden": 2,
                "ordinal_position": 5,
                "char_length": 7,
                "numeric_precision": 0,
                "numeric_scale": 0,
                "numeric_scale_null": true,
                "datetime_precision": 0,
                "datetime_precision_null": 1,
                "has_no_default": false,
                "default_value_null": true,
                "srs_id_null": true,
                "srs_id": 0,
                "default_value": "",
                "default_value_utf8_null": true,
                "default_value_utf8": "",
                "default_option": "",
                "update_option": "",
                "comment": "",
                "generation_expression": "",
                "generation_expression_utf8": "",
                "options": "",
                "se_private_data": "table_id=1063;",
                "engine_attribute": "",
                "secondary_engine_attribute": "",
                "column_key": 1,
                "column_type_utf8": "",
                "elements": [],
                "collation_id": 63,
                "is_explicit_collation": false
            }
        ],
        "schema_ref": "testdb",
        "se_private_id": 1063,
        "engine": "InnoDB",
        "last_checked_for_upgrade_version_id": 0,
        "comment": "",
        "se_private_data": "",
        "engine_attribute": "",
        "secondary_engine_attribute": "",
        "row_format": 2,
        "partition_type": 0,
        "partition_expression": "",
        "partition_expression_utf8": "",
        "default_partitioning": 0,
        "subpartition_type": 0,
        "subpartition_expression": "",
        "subpartition_expression_utf8": "",
        "default_subpartitioning": 0,
        "indexes": [
            {
                "name": "PRIMARY",
                "hidden": true,
                "is_generated": false,
                "ordinal_position": 1,
                "comment": "",
                "options": "",
                "se_private_data": "id=153;root=4;space_id=2;table_id=1063;trx_id=1297;",
                "type": 2,
                "algorithm": 2,
                "is_algorithm_explicit": false,
                "is_visible": true,
                "engine": "InnoDB",
                "engine_attribute": "",
                "secondary_engine_attribute": "",
                "elements": [
                    {
                        "ordinal_position": 1,
                        "length": 4294967295,
                        "order": 2,
                        "hidden": true,
                        "column_opx": 2
                    },
                    {
                        "ordinal_position": 2,
                        "length": 4294967295,
                        "order": 2,
                        "hidden": true,
                        "column_opx": 3
                    },
                    {
                        "ordinal_position": 3,
                        "length": 4294967295,
                        "order": 2,
                        "hidden": true,
                        "column_opx": 4
                    },
                    {
                        "ordinal_position": 4,
                        "length": 4294967295,
                        "order": 2,
                        "hidden": true,
                        "column_opx": 0
                    },
                    {
                        "ordinal_position": 5,
                        "length": 4294967295,
                        "order": 2,
                        "hidden": true,
                        "column_opx": 1
                    }
                ],
                "tablespace_ref": "testdb/tt"
            }
        ],
        "foreign_keys": [],
        "check_constraints": [],
        "partitions": [],
        "collation_id": 255
    }
}
}
,
{
    "type": 2,
    "id": 7,
    "object":
        {
    "mysqld_version_id": 80028,
    "dd_version": 80023,
    "sdi_version": 80019,
    "dd_object_type": "Tablespace",
    "dd_object": {
        "name": "testdb/tt",
        "comment": "",
        "options": "autoextend_size=0;encryption=N;",
        "se_private_data": "flags=16417;id=2;server_version=80028;space_version=1;state=normal;",
        "engine": "InnoDB",
        "engine_attribute": "",
        "files": [
            {
                "ordinal_position": 1,
                "filename": "./testdb/tt.ibd",
                "se_private_data": "id=2;"
            }
        ]
    }
}
}
]
View Code

 


 

 

 


-rwxr-xr-x. 1 7161 31415      5084 Dec 18 01:46 /usr/local/mysql/bin/mysql_config
shell脚本
显示编译mysql时所使用的参数



-rwxr-xr-x. 1 7161 31415   4756310 Dec 18 01:50 /usr/local/mysql/bin/mysql_config_editor
mysql_config_editor是一个MySQL自带的一款用于安全加密登录的工具,使用这个工具,可以创建一个登录MySQL的路径(或者说是创建一个登录MySQL的别名),
将登录MySQL的 username、password、port、socket文件等一系列的权限参数存入一个叫.mylogin.cnf的隐藏文件中。需要控制好操作系统的用户权限。
mysql_config_editor对 .mylogin.cnf文件进行模糊处理,因此无法将其作为明文读取,比如使用cat是不能查看的。
但mysql_config_editor提供了一个 print命令用于显示登录路径文件内容的命令,但即使在这种情况下,密码值也会被屏蔽,以免以其他用户可以看到的方式出现(见后面举例)。
使用mysql_config_editor可以管理一台MySQL实例,也可以用于管理多台MySQL实例。最重要的是能免除在命令行、脚本里输入明文密码,带来一系列的安全隐患了。
创建本地登录路径localauth:
mysql_config_editor set --login-path=xxx -h localhost --user=root --port=3306 --password
mysql  --login-path=xxx   #登录,不用明文密码了



-rwxr-xr-x. 1 7161 31415 542096448 Dec 18 02:07 /usr/local/mysql/bin/mysqld
mysql服务端


-rwxr-xr-x. 1 7161 31415 524321530 Dec 18 01:44 /usr/local/mysql/bin/mysqld-debug
debug模式初始化mysql
https://blog.csdn.net/struggle_chong/article/details/85091526?spm=1001.2101.3001.6650.7&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-7-85091526-blog-113220535.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-7-85091526-blog-113220535.pc_relevant_paycolumn_v3&utm_relevant_index=12



-rwxr-xr-x. 1 7161 31415     27492 Dec 18 01:46 /usr/local/mysql/bin/mysqld_multi
多实例


-rwxr-xr-x. 1 7161 31415     29157 Dec 18 01:46 /usr/local/mysql/bin/mysqld_safe
守护进程,shell脚本, mgr一定要用mysqld_safe启动


-rwxr-xr-x. 1 7161 31415  16479123 Dec 18 01:50 /usr/local/mysql/bin/mysqldump
逻辑备份



-rwxr-xr-x. 1 7161 31415      7669 Dec 18 01:46 /usr/local/mysql/bin/mysqldumpslow
常见用法
mysqldumpslow -s c -t 10 /var/run/mysqld/mysqld-slow.log # 取出使用最多的10条慢查询  阿里云clouddba默认就是次数最多排序
mysqldumpslow -s t -t 3 /var/run/mysqld/mysqld-slow.log # 取出查询时间最慢的3条慢查询
mysqldumpslow -s t -t 10 -g “left join” /database/mysql/slow-log # 得到按照时间排序的前10条里面含有左连接的查询语句
mysqldumpslow -s r -t 10 -g 'left join' /var/run/mysqld/mysqld-slow.log # 按照扫描行数最多的
注意: 使用mysqldumpslow的分析结果不会显示具体完整的sql语句,只会显示sql的参数化语句;
假如: SELECT * FROM sms_send WHERE service_id=10 GROUP BY content LIMIT 0, 1000;
mysqldumpslow来显示
Count: 1  Time=1.91s (1s)  Lock=0.00s (0s)  Rows=1000.0 (1000), vgos_dba[vgos_dba]@[10.130.229.196]SELECT * FROM sms_send WHERE service_id=N GROUP BY content LIMIT N, N





-rwxr-xr-x. 1 7161 31415  16067355 Dec 18 01:50 /usr/local/mysql/bin/mysqlimport
mysqlimport客户端实际上就是“LOAD DATA”命令的一个包装实现,所以大部分参数选项与LOAD DATA相同
mysqlimport 工具实际上也只是“load data infile”命令的一个包装实现。
导入mysqldump文件(通过“select * into OUTFILE from ...”所生成的数据文件)


-rwxr-xr-x. 1 7161 31415  17290542 Dec 18 01:50 /usr/local/mysql/bin/mysql_migrate_keyring
允许将密钥从一个密钥环组件迁移到另一个
从8.0.16开始支持对Schema和通用表空间设置加密默认值,这就允许对在这些Schema和表空间中的表是否加密进行统一控制;静态加密功能依赖于Keyring组件或插件,MySQL社区版提供的Keyring file插件会将Keyring数据存储在服务器主机的本地文件系统中


-rwxr-xr-x. 1 7161 31415  25157352 Dec 18 01:50 /usr/local/mysql/bin/mysqlpump
mysqlpump 是 mysqldump 的一个衍生,本身也参考了 mydumper 的思路,支持了并行导出数据,因此导出数据的效率比 mysqldump 会高很多。
mysqlpump 的绝大多数参数与 mysqldump 是一样的,整体的使用方法和 mysqldump 没有太多的差异。这里列出一部分 mysqlpump 中比较重要且常用的参数。
参数
--default-parallelism=#
设置并行导出的并发度,与 single-transaction 冲突,当这两个参数同时启用single-transaction的优先级会高于default-parallelism。
--single-transaction  
创建一个单独的事务来导出所有的表
优点:
并行备份数据库和数据库中的对象,比 mysqldump 更高效。
更好的控制数据库和数据库对象(表,存储过程,用户帐户)的备份。
支持备份进度。  
缺点:  
只能并行到表级别,如果有一个表数据量特别大那么会存在非常严重的短板效应。
导出的数据保存在一个文件中,导入仍旧是单线程,效率较低。
无法获取当前备份对应的binlog位置。

每个线程都开了RR隔离级别,开启一致性快照事务
mysqlpump流程
2021-05-12T11:54:09.033215Z        75 Connect   root@172.100.10.10 on  using SSL/TLS
2021-05-12T11:54:09.075347Z        75 Query     FLUSH TABLES WITH READ LOCK //开始锁表
2021-05-12T11:54:09.103132Z        75 Query     SHOW WARNINGS
2021-05-12T11:54:09.106382Z        75 Query     SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
2021-05-12T11:54:09.106553Z        75 Query     SHOW WARNINGS
2021-05-12T11:54:09.106640Z        75 Query     START TRANSACTION WITH CONSISTENT SNAPSHOT
2021-05-12T11:54:09.108115Z        75 Query     SHOW WARNINGS
2021-05-12T11:54:09.127277Z        76 Connect   root@172.100.10.10 on  using SSL/TLS
2021-05-12T11:54:09.127452Z        76 Query     SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
2021-05-12T11:54:09.127590Z        76 Query     SHOW WARNINGS
2021-05-12T11:54:09.127680Z        76 Query     START TRANSACTION WITH CONSISTENT SNAPSHOT
2021-05-12T11:54:09.127790Z        76 Query     SHOW WARNINGS
......
2021-05-12T11:54:10.018813Z        90 Connect   root@172.100.10.10 on  using SSL/TLS
2021-05-12T11:54:10.018944Z        90 Query     SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
2021-05-12T11:54:10.019047Z        90 Query     SHOW WARNINGS
2021-05-12T11:54:10.019150Z        90 Query     START TRANSACTION WITH CONSISTENT SNAPSHOT
2021-05-12T11:54:10.019226Z        90 Query     SHOW WARNINGS
2021-05-12T11:54:10.025833Z        91 Connect   root@172.100.10.10 on  using SSL/TLS
2021-05-12T11:54:10.025934Z        91 Query     SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
2021-05-12T11:54:10.026048Z        91 Query     SHOW WARNINGS
2021-05-12T11:54:10.026141Z        91 Query     START TRANSACTION WITH CONSISTENT SNAPSHOT
2021-05-12T11:54:10.026219Z        91 Query     SHOW WARNINGS
2021-05-12T11:54:10.026293Z        75 Query     UNLOCK TABLES  //每个线程都开了一致性快照事务之后,结束锁表
2021-05-12T11:54:10.026406Z        75 Query     SHOW WARNINGS

mysqldump流程
2017-06-14T03:55:06.164269Z       79 Query    /*!40103 SET TIME_ZONE='+00:00' */
2017-06-14T03:55:06.164345Z       79 Query    FLUSH /*!40101 LOCAL */ TABLES  表结构变更未刷新到磁盘的,刷新到磁盘
2017-06-14T03:55:06.198961Z       79 Query    FLUSH TABLES WITH READ LOCK 整个数据库只能读,不能写
2017-06-14T03:55:06.199076Z       79 Query    SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
2017-06-14T03:55:06.199132Z       79 Query    START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */
2017-06-14T03:55:06.199257Z       79 Query    SHOW VARIABLES LIKE 'gtid\_mode'
2017-06-14T03:55:06.200977Z       79 Query    SELECT @@GLOBAL.GTID_EXECUTED   如果是gtid复制,获取gtidEXECUTED
2017-06-14T03:55:06.201052Z       79 Query    SHOW MASTER STATUS  获取一致性pos点
2017-06-14T03:55:06.201105Z       79 Query    UNLOCK TABLES   获取完一致性pos点之后解锁





-rwxr-xr-x. 1 7161 31415  15899398 Dec 18 01:50 /usr/local/mysql/bin/mysql_secure_installation
用于生产环境,最好执行mysql_secure_installation来做一些常规化安全设置,mysql安装的一般安全设置,自己的安装脚本已经做了
删除系统创建的匿名用户
提示设置root user密码  
禁止root用户远程登录  
删除test数据库  和对test库的访问权限
重载权限表  

 




-rwxr-xr-x. 1 7161 31415  15980093 Dec 18 01:50 /usr/local/mysql/bin/mysqlshow
mysqlshow 命令用于显示 MySQL 服务器中的数据库、表和列信息。
如果没有指定数据库,则显示所有匹配的数据库;如果没有指定表,将显示数据库中所有匹配的表。如果没有指定列,则显示表中所有匹配的列。
mysqlshow <选项> <参数>
参数:指定要显示的数据库对象,可以是一个数据库名,或者是数据库名+表名,或者是数据库名+表名+列名
选项    说明
-h    MySQL服务器的IP地址或主机名
-u    连接MySQL服务器的用户名
-p    连接MySQL服务器的密码
–count    显示每个数据表的行数
-k    显示数据库表的索引,键
-t    显示数据表的类型
-i    显示数据表的额外信息
[root@localhost tmp]# /usr/local/mysql/bin/mysqlshow  -uroot  -p -S /data/mysql/mysql3306/tmp/mysql.sock
Enter password:
+--------------------+
|     Databases      |
+--------------------+
| employees          |
| information_schema |
| mysql              |
| performance_schema |
| school             |
| sqle               |
| sys                |
| test               |
+--------------------+








-rwxr-xr-x. 1 7161 31415  16174506 Dec 18 01:50 /usr/local/mysql/bin/mysqlslap  
mysqlslap是mysql自带的基准测试工具
--concurrency=100 --iterations=1--auto-generate-sql --auto-generate-sql-load-type=mixed --auto-generate-sql-add-autoincrement --engine=innodb --number-of-queries=5000








-rwxr-xr-x. 1 7161 31415   4857164 Dec 18 01:47 /usr/local/mysql/bin/mysql_ssl_rsa_setup
mysql_ssl_rsa_setup程序用于创建 SSL 证书和密钥文件以及 RSA 密钥对文件,以支持使用 SSL 的安全连接和使用 RSA 通过未加密连接的安全密码交换(如果这些文件丢失)。
mysql_ssl_rsa_setup 实际调用OpenSSL,所以需要预先安装 OpenSSL
mysql_ssl_rsa_setup命令简介
1、使用语法
mysql_ssl_rsa_setup [options]
#典型的选项是 --datadir指定创建文件的位置,以及 --verbose查看mysql_ssl_rsa_setup执行的 openssl命令 。

2、参数说明
参数选项    参数说明
-d, --datadir=name    数据目录路径
-?, --help    显示帮助信息并退出
-s, --suffix=name X.509    证书通用名称属性的后缀
–uid=name    用于文件权限的有效用户的名称
-v, --verbose    详细模式
-V, --version    显示版本信息并退出
3、生成文件清单及说明
证书文件    文件说明
ca-key.pem    CA私钥
ca.pem    自签的CA证书,客户端连接也需要提供
client-cert.pem    客户端连接服务器端需要提供的证书文件
client-key.pem    客户端连接服务器端需要提供的私钥文件
private_key.pem    私钥/公钥对的私有成员
public_key.pem    私钥/公钥对的共有成员
server-cert.pem    服务器端证书文件
server-key.pem    服务器端私钥文件






-rwxr-xr-x. 1 7161 31415   3862305 Dec 18 01:47 /usr/local/mysql/bin/mysql_tzinfo_to_sql
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root  -pxxx  -h 127.0.0.1  mysql
mysql_tzinfo_to_sql读取系统时区文件并生成时区数据。mysql处理这些时区数据并装载到mysql库的时区表,导入mysql库下的这些表
mysql库下
time_zone                                            
time_zone_leap_second                                
time_zone_name                                       
time_zone_transition                                 
time_zone_transition_type  






-rwxr-xr-x. 1 7161 31415  17970627 Dec 18 01:50 /usr/local/mysql/bin/mysql_upgrade  
mysql升级工具,升级大版本,mysql5.7之前升级小版本都要用










                 

posted @ 2017-03-21 10:36  xiaohuazi  阅读(1683)  评论(0编辑  收藏  举报