mysql- 主要客户端工具
# 基本连接 mysql -u username -p mysql -h hostname -u username -p mysql -h hostname -u username -p -P 3306 # 带数据库连接 mysql -u username -p database_name # 常用参数 mysql -u root -p --prompt="(\u@\h)[\d]> " # 自定义提示符 mysql -u root -p --show-warnings # 显示警告 mysql -u root -p --auto-rehash # 自动补全
mysqldump- 备份工具
# 备份单个数据库 mysqldump -u username -p database_name > backup.sql # 备份所有数据库 mysqldump -u username -p --all-databases > all_backup.sql # 备份指定表 mysqldump -u username -p database_name table1 table2 > tables_backup.sql # 常用参数 mysqldump -u root -p --routines --triggers --events database_name # 包含存储过程、触发器、事件 mysqldump -u root -p --single-transaction database_name # 事务方式备份(InnoDB) mysqldump -u root -p --compress database_name # 压缩输出
mysqladmin- 管理工具
# 检查服务器状态 mysqladmin -u root -p status mysqladmin -u root -p ping # 关闭/重启MySQL mysqladmin -u root -p shutdown mysqladmin -u root -p restart # 创建/删除数据库 mysqladmin -u root -p create new_database mysqladmin -u root -p drop database_name # 查看变量和状态 mysqladmin -u root -p variables mysqladmin -u root -p extended-status
mysqld- MySQL服务器
# 启动服务器 mysqld --console # 控制台模式 mysqld --defaults-file=/path/to/my.cnf # 初始化数据目录(MySQL 5.7+) mysqld --initialize --user=mysql mysqld --initialize-insecure --user=mysql # 安全安装(MySQL 8.0+) mysqld --initialize --lower-case-table-names=1
mysqlimport- 数据导入工具
# 导入CSV文件 mysqlimport -u username -p --fields-terminated-by=',' \ --fields-optionally-enclosed-by='"' \ database_name data.csv # 导入多个文件 mysqlimport -u root -p database_name file1.txt file2.txt # 常用参数 mysqlimport -u root -p --ignore-lines=1 database_name file.csv # 忽略标题行 mysqlimport -u root -p --replace database_name file.csv # 替换重复记录 mysqlimport -u root -p --local database_name file.csv # 从客户端读取文件
mysqlpump- 并行备份工具(MySQL 5.7+)
# 并行备份 mysqlpump -u root -p --parallel-schemas=4 database_name # 备份排除某些表 mysqlpump -u root -p --exclude-tables=temp_%,log_% database_name # 压缩备份 mysqlpump -u root -p --compress-output=ZLIB > backup.zlib
mysqlslap- 负载模拟工具
# 基本压力测试 mysqlslap -u root -p --concurrency=50 --iterations=100 \ --query="SELECT * FROM users" # 使用SQL文件测试 mysqlslap -u root -p --concurrency=100 --iterations=10 \ --create-schema=testdb --query=query.sql # 自动生成测试 mysqlslap -u root -p --auto-generate-sql \ --concurrency=100 --number-of-queries=1000
mysqlcheck- 表维护工具
# 检查表 mysqlcheck -u root -p database_name mysqlcheck -u root -p --check database_name table_name # 修复表 mysqlcheck -u root -p --repair database_name # 优化表 mysqlcheck -u root -p --optimize database_name # 分析表 mysqlcheck -u root -p --analyze database_name
mysqlbinlog- 二进制日志工具
# 查看binlog内容 mysqlbinlog /var/lib/mysql/binlog.000001 # 转换为SQL语句 mysqlbinlog /var/lib/mysql/binlog.000001 --base64-output=DECODE-ROWS -v # 按时间过滤 mysqlbinlog --start-datetime="2024-01-01 00:00:00" \ --stop-datetime="2024-01-02 00:00:00" \ /var/lib/mysql/binlog.000001 # 恢复数据 mysqlbinlog /var/lib/mysql/binlog.000001 | mysql -u root -p