文章目录
- [MySQL bin目录下的可执行文件](#MySQL bin目录下的可执行文件)
MySQL bin目录下的可执行文件

1.mysqldump
mysqldump 是 MySQL 的数据库备份工具。对数据备份、迁移或恢复非常重要。
- 备份整个数据库:
shell
mysqldump -u [username] -p[password] [database_name] > [filename].sql

- 备份指定的表,比如备份 mysql 数据库的 user 表:
shell
mysqldump -u root -p mysql user > mysql_user_back.sql

- 备份多个数据库。使用
--databases
参数,后面跟上要备份的数据库名,中间用空格隔开。备份所有数据库,可以使用--all-databases
参数。
shell
mysqldump -uroot -p --databases database1 database2 > test.sql
2.mysqladmin
mysqladmin 是 MySQL 的管理工具,可以执行一些管理操作,比如创建数据库、删除数据库、查看 MySQL 服务器的状态等。通常在自动化脚本中使用。
- 查看 MySQL 服务器的状态:
shell
mysqladmin -uroot -p status

- 重新加载授权表:
shell
mysqladmin -uroot -p flush-privileges
mysqladmin -uroot -p reload
- 刷新日志文件:
shell
mysqladmin -uroot -p flush-logs
- 创建数据库:
shell
mysqladmin -uroot -p create test
- 删除数据库:
shell
mysqladmin -uroot -p drop test
3.mysqlcheck
mysqlcheck 是 MySQL 提供的命令行工具,用于检查、修复、分析和优化数据库表。
- 检查数据库的所有表:
shell
mysqlcheck -uroot -p --check your_database_name

4.mysqlimport
mysqlimport 用于从文本文件中导入数据到数据库表中,适合用于批量导入数据。比如,有一个 CSV 文件,要导入到数据库表中:
shell
mysqlimport -uroot -p --fields-terminated-by=, --fields-enclosed-by='"' --lines-terminated-by='\n' your_database_name your_table_name.csv
--fields-terminated-by
:指定字段之间的分隔符。--fields-enclosed-by
:指定字段的包围符。--lines-terminated-by
:指定行的结束符。your_table_name.csv
:指定要导入的文件。your_database_name
:指定要导入的数据库。
示例:
- 先创建一个 CSV 文件:
shell
echo "1, 'Java', 'Java is the best language', '2022-02-05 19:30:00'" > article.csv
echo "2, 'Python', 'Python is the best language', '2022-02-05 19:30:00'" >> article.csv
echo "3, 'Go', 'Go is the best language', '2022-02-05 19:30:00'" >> article.csv
- 在创建一张表:
shell
CREATE TABLE `article` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`content` text NOT NULL,
`create_time` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
- 利用 mysqlimport 导入 article.csv 到 article 表:
shell
mysqlimport -uroot -p --fields-terminated-by=, --fields-enclosed-by='"' --lines-terminated-by='\n' --local mysql article.csv
5.mysqlshow
mysqlshow 用于显示 MySQL 数据库服务器中的数据库、表、列等信息。
- 查看数据库中的所有表:
shell
mysqlshow -uroot -p your_database_name

- 查看表中的所有列:
shell
mysqlshow -uroot -p your_database_name your_table_name

- 查看表的索引信息:
shell
mysqlshow -uroot -p --keys your_database_name your_table_name

6.mysqlbinlog
mysqlbinlog 用于查看 MySQL 二进制日志文件的内容,可以用于恢复数据、查看数据变更等。二进制日志是 MySQL 服务器的一个重要特性,记录了数据库更改的所有"事件",如表的创建、数据的插入、更新和删除操作。
- 查看二进制日志文件的内容:
shell
mysqlbinlog -uroot -p /path/to/your/binlog-file
- 查看并恢复从昨天晚上 10 点到今天早上 2 点之间发生的所有数据库更改:
shell
mysqlbinlog --start-datetime="YYYY-MM-DD 22:00:00" \
--stop-datetime="YYYY-MM-DD 02:00:00" \
/path/to/binlog-file > /path/to/output.sql
7.常用可执行文件
文件名 | 功能说明 | 常用用途示例 |
---|---|---|
mysql |
MySQL 客户端工具,连接并操作数据库 | 登录数据库:mysql -u root -p |
mysqld |
MySQL 服务器守护进程,数据库服务的主程序 | 启动 MySQL 服务(一般由系统调用) |
mysqld_safe |
启动 mysqld 的安全脚本,提供日志和崩溃自动重启支持 |
通常用于安全模式启动 |
mysqladmin |
管理 MySQL 服务器(关闭、检查、重启等) | 关闭服务器:mysqladmin shutdown |
mysqldump |
逻辑备份工具,将数据库导出为 SQL 文件 | 备份数据库:mysqldump dbname > file.sql |
mysqlimport |
将数据文件导入数据库(基于 .txt 或 .csv ) |
导入 CSV 数据:mysqlimport --local ... |
mysqlcheck |
检查、修复、分析表 | 修复表:mysqlcheck -r dbname |
mysqlshow |
显示数据库、表和列的信息 | 查看表结构:mysqlshow dbname |
mysqlbinlog |
查看和解析二进制日志(用于主从同步或数据恢复) | 恢复操作:mysqlbinlog binlog.000001 |
mysqlpump |
高性能备份工具,支持并行导出 | 并行备份:mysqlpump --databases test |
mysqlslap |
性能测试工具 | 压测命令:mysqlslap --concurrency=50 ... |
mysqld_multi |
管理多实例 MySQL 服务器 | 启动多个实例 |
mysql_config |
输出编译信息(用于开发时获取编译参数) | 获取编译参数:mysql_config --libs |
mysql_secure_installation |
配置 MySQL 安全选项(如设置 root 密码、删除匿名用户等) | 初次安装后的安全设置工具 |
mysql_upgrade |
升级工具,检查并升级数据库文件结构,使其兼容新版本的 MySQL | 升级数据库:mysql_upgrade -u root -p MySQL 8.0 之后部分功能被自动化 |
mysql_tzinfo_to_sql |
将操作系统的时区信息(如 /usr/share/zoneinfo )导入 MySQL 数据库中的 mysql.time_zone 表 |
导入时区:`mysql_tzinfo_to_sql /usr/share/zoneinfo |
😃😃😃