MySQL常用工具总结

- mysql

-P:指定端口

[mysqld]
port=端口号

-e:在终端执行SQL,不用登录,主要用于一些脚本程序

mysql -uroot -p1234 -h127.0.0.1 -P3306 -e"select * from user" db1

- mysqladmin

执行管理操作的工具

# 用法
mysqladmin [OPTIONS] command command....

# 创建库
mysqladmin -uroot -p1234 create db2

# 删除库
mysqladmin -uroot -p1234 drop db2

# 修改密码
mysqladmin -uroot -p1234 password 5678

# 查看更多用法
mysqladmin --help

- mysqlshow

客户端对象查看工具

–count:统计

-i:详细信息

mysqlshow -uroot -p1234 [OPTIONS] [database [table [column]]]

- mysqldump

-B, –databases:备份多个数据库

-A, –all-databases:备份所有数据库

–add-drop-database:创建库之前,增加删除库语句

–add-drop-table:创建表之前,增加删除表语句(默认,可以通过它取消:–skip-add-drop-table)

–single-transaction:通过事务备份(快照读保证数据的一致性)

-n:不要创建库语句

-t:不要创建表语句

-d:不要插入数据语句

-T path:产生两个文件(表结构:*.sql,表数据:*.txt),只能本地执行,数据文件存储在path路径里

mysqldump [OPTIONS] database [tables]
mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
mysqldump [OPTIONS] --all-databases [OPTIONS]

- mysqldumpslow

mysql官方提供的慢查询日志分析工具。


#输出记录次数最多的10条SQL语句。
mysqldumpslow -s r -t 10 /database/mysql/slow-log

#输出按照时间排序的前10条里面含有左连接的查询语句。
mysqldumpslow -s t -t 10 -g “left join” /database/mysql/slow-log
  • 参数

-s:是sort的意思,表示按照何种方式排序, c、t、l、r分别是按照记录次数、时间、查询时间、返回的记录数来排序,ac、at、al、ar,表示相应的倒序;

-t:是top n的意思,即为返回前面多少条的数据;

-g:是grep的意思,后边可以写一个正则匹配模式,大小写不敏感的;

- mysqlimport

导入mysqldump -T导出的文本数据

mysqlimport [OPTIONS] database textfile...
  • 执行sql脚本
source *.sql
  • 导入自定义格式的文本数据
mysql --local-infile -uroot -p
set global local_infile=1;

# mysql5.7直接用,8.0需要前面两步
load data local infile '文件路径' into table 表名 fields terminated by '字段分隔符' lines terminated by '换行符';

- mysqlbinlog

待更新