MySQL Programs
MySQL server端程序:
mysqld:
mysql程序(server),使用前该程序必须是running的;因为client要连接到这个server
mysqld --verbose–help 查看详细描述;
所有的这些设置都可以在my.cnf里面进行设置;
mysqld_safe:
server开启脚本;会尝试打开mysqld
mysql_safe增加了一些安全功能,例如当发生错误的时候,重启服务器,且对错误运行信息进行日志记录;
如果未指定option,mysql_safe的默认选项和mysqld一致;也可以在my.cnf中以
mysql.server
server开启脚本,当系统使用UnixSystem V-style的时候,使用该程序开启mysql,它会调用mysql_safe;
my.cnf中可以指定配置:
[mysql.server]
basedir=/usr/local/mysql
[mysal_safe]指定;
选项和mysqld基本一致;
mysql_multi:
可以停止或者启动server上安装的多态服务器;
用于管理多个mysqsld进程,连接在不通的unixsocket和TCP/IP ports;可以开启活着关闭服务,或者report他们状态;
My.cnf中的配置为:
[mysqldN]
安装或者升级的时候执行设置操作:
comp_err:
该程序在安装的时候使用,它编译错误消息;
mysql_install_db:
用于初始化 datadirectory,创建database,以默认权限初始化授权表,设置InnoDB;初始化安装的时候只执行一次;
会创建账户root@localhost;
创建默认my.cnf文件
mysql_plugin
配置mysqlserver 插件;
该功能MySQL5.7.11 and removed in MySQL 8.0
mysql_secure_installation:
进行安全安装,提高安装的安全性
安装的时候设置root密码;
拒绝外部机器用root账户进行连接登陆
删除默认账户
删除test db
mysql_ssl_rsa_setup:
该程序创建SSL证书和RSA钥匙对,用于server和client间的安全连接;
Step1: 从PATH中查找openssl文件
Step2: 然后从mysql/data/目录 查找SSL文件ca.pem/server-cert.pem/server-key.pem
Step3: 如果上面SSL存在,则不创建,不存在则mysql_ssl_rsa_setp会根据openssl创建SSL文件;
Step4: 查找data目录中RSA文件;存在则不创建,不存在则通过openssl创建;
mysql_tzinfo_to_sql:
用于加载时区表;
mysql_upgrade:
当MySQL升级后,使用这个程序;用于检查所有databases和所有的tables与当前版本的不兼容并进行修复;如果新版本在授权方面有任何更改,更新grant表;
每次升级或者降级后,都应该执行这个命令;
Mysql_upgrade后,重启mysql,石所有变更生效;
如果连接了多个实例,以下面命令运行:
shell> mysql_upgrade --protocol=tcp -P 3306 [other_options]
shell> mysql_upgrade --protocol=tcp -P 3307 [other_options]
shell> mysql_upgrade --protocol=tcp -P 3308 [other_options]
MySQL 客户端连服务器工具:
mysql
用于交互环境下执行处理
-h/ --host hostname/ip
-p/ --password 密码
-P/ --port 指定端口号
-u/ --user 用户名
参数用于修改默认值,如果不加,系统将使用默认值;
在my.cnf中设置配置默认值,这样就可以直接用Mysql命令直接登陆;
shell> mysql --execute="select userfrom mysql.user;"
[root@localhost shell]# mysql -e"select version(),database();"
shell下直接执行查询命令;
status; 查看当前连接状态:
mysqladmin
执行管理操作,如创建删除databases;重载grant tables,刷新表,从服务器中获取版本、程序和状态信息;
shell> mysqladmin --count=1K --sleep=10ping
执行ping命令1000次,每次间隔10s;
mysqladmin shutdown 关闭
mysqlcheck
表维护客户端,用于检查,修复,分析,优化表;
shell> mysqlcheck [options] db_name [tbl_name...]
shell> mysqlcheck [options] --databases db_name...
shell> mysqlcheck [options] --all-databases
--repare / --analyze / --optimize
mysqldump
客户端程序,逻辑备份数据库到一个sql文件;
它会导出生成对象和数据的SQL语句集合,然后生成为CSV格式或者text,XML格式;
Mysql至少要有SELECT权限去执行表的逻辑备份;SHOWVIEW权限执行视图备份,SHOW TRIGGER执行触发器备份,它会LOCK TABLES,如果—single-transaction没有被指定;
如果要导入dump文件的时候,你必须要拥有执行文件内sql语句的权限;
如果是innodb引擎或者innodb和Myisam混合的情况下,可使用mysqlbackup命令;
shell> mysqldump [options] db_name [tbl_name...]
shell> mysqldump [options] --databases db_name...
shell> mysqldump [options] --all-databases
P429
msqlimport
客户端程序,使用LOADDATA FINFILE,导入text文件到各自的表中;
mysqlimport [options] db_nametextfile1 [textfile2 ...]
mysqlpump
客户端程序,逻辑备份数据库到一个sql文件;
v5.6无
mysqlsh version 5.6 无
一个高级的命令行客户端和代码编辑器。除了标准SQL,Mysql还提供了对JavaScript和Python脚本的支持;
mysqlshow
客户端,用于显示databases,tables,columns,indexes;
shell> mysqlshow [options] [db_name[tbl_name [col_name]]]
mysqlslap
为模拟MySQL服务器的客户端负载而设计的客户端,并报告每个阶段的时间。它工作起来就像多个客户端访问服务器一样。
用于负载的压力测试
1, 建表,或者存储过程,或者插入数据,单用户连接
2, 运行负载测试,可以使用许多客户连接
3, 清除-disconnect,droptable 单用户连接
mysqlslap --delimiter=";"--create="create table a (b int); INSERT INTO a VALUES(23)" --query="SELECT * FROM a" --concurrency=50 --iterations=100
-a –auto-generate-sql自动生成测试和数据
-c –concurrency=N 生成并发数;即多少个模拟终端同时执行select;
-i –iteration-N 测试迭代次数,在不通环境下各自测试多少次;
MySQL管理工具:
innochecksum
离线Innodb 脱机文件校验工具;
myisam_ftdump
用于在MYISAM引擎显示full-text索引的工具
shell> myisam_ftdump [options] tbl_nameindex_num
一共14行
一共135个单词
不重复单词109
最长单词12个字符:individually
字符平均长度7
最常出现的词 5次;权重 0.58xxx,customer;
计算每个单词出现次数;
单词长度
myisamchk
用于描述、检查、优化、修复MYISAM表的工具
时间信息也可以在information_schema.tables查到
每一列的开始位置和长度;
myisamlog
处理MYISAM log文件的工具;显示MyISAM日志文件内容
开启服务器的时候必须带参数
--log-isam=log_file
myisampack
压缩MYISAM表成read-only的表;
使用工具后,会压缩MyISAM的每一列,通常会压缩40%-70%
需要读取的时候,会解压列,这个非常方便当读取单独行,因为它会精确地解压一行;
当压缩后,表是只读的,一般是有意义的,例如存储到CD中;
可以看到表的长度由1892变为1243;压缩了34.3%
mysql_config_editor
一个工具,让你存储认证证书,在安全加密的路径下 .mylogin.cnf
~\目录下 (为什么我的目录下没有这个)
当你使用client登陆的时候,Client会使用这个文件
默认情况下,mysql 客户端读取my.cnf配置文件的[client]和[mysql],使用—login-path,client会额外读取其他配置文件;
mysqlbinlog
用于从处理binlog日志工具;执行语句会存储在binlog中,当恢复数据库的时候会需要用;数据库binlog是二进制形式,使用mysqlbinlog可以使之以文本格式显示;
mysqldumpslow
用于读取总结慢查询日志;
MySQL程序开发工具:
mysql_config
编译程序的时候,产生可选项的shell脚本;
my_print_defaults
打印默认选项的工具
resolve_stack_dump
将数字堆栈跟踪转存为符号的工具
其他工具:
lz4_decompress
当mysqlpump 输出创建的时候使用LZ4压缩,可以用这个工具解压缩;
perror
显示系统或者mysql 错误码的工具;
replace
执行字符串替换的工具;
resolveip
处理主机名和IP地址的相互转换;
zlib_decompress
当mysqlpump转存文件被压缩为ZLIB格式的时候,使用这个工具进行解压;
Help
Helpme
P434