首页 >> 工具知识
mysql命令-mysql
一、基本连接命令
1. 连接到MySQL服务器
# 基本连接 mysql -u username -p # 指定主机和端口 mysql -h hostname -P port -u username -p # 示例 mysql -h localhost -u root -p mysql -h 192.168.1.100 -P 3307 -u admin -p
2. 连接选项详解
-u或--user:指定用户名-p或--password:提示输入密码-h或--host:服务器主机名(默认localhost)-P或--port:端口号(默认3306)-S或--socket:Unix套接字文件--protocol:连接协议(TCP、SOCKET、PIPE等)
二、执行SQL语句
1. 直接执行SQL
# 执行单条SQL语句 mysql -u username -p -e "SHOW DATABASES;" # 执行多条SQL语句 mysql -u username -p -e "USE test; SELECT * FROM users;" # 示例 mysql -u root -p -e "SHOW DATABASES;" mysql -u root -p -e "SELECT VERSION();"
2. 从文件执行SQL
# 从文件执行SQL mysql -u username -p database_name < file.sql # 示例 mysql -u root -p mydb < backup.sql
三、常用命令行选项
1. 输出格式控制
# 不显示列名 mysql -u root -p -s -e "SELECT * FROM users" # 垂直显示结果(每列单独一行) mysql -u root -p -E -e "SELECT * FROM users" # 表格格式(默认) mysql -u root -p -t -e "SELECT * FROM users" # XML格式输出 mysql -u root -p -X -e "SELECT * FROM users" # HTML格式输出 mysql -u root -p -H -e "SELECT * FROM users"
2. 执行控制选项
# 强制执行,遇到错误继续 mysql -u root -p -f -e "SQL语句" # 安静模式,减少输出 mysql -u root -p -q -e "SQL语句" # 跳过自动重连 mysql -u root -p --skip-reconnect # 启用自动补全(默认开启) mysql -u root -p --auto-rehash
3. 字符集设置
# 设置客户端字符集 mysql -u root -p --default-character-set=utf8mb4 # 示例 mysql -u root -p --default-character-set=utf8
四、交互模式下的命令
1. 帮助命令
-- 获取帮助help \h \? ? -- 查看特定命令帮助 help select\h show
2. 执行系统命令
-- 执行系统命令 system command \! command -- 示例 system ls -la \! pwd
3. 格式化输出
-- 垂直显示结果 SELECT * FROM users \G -- 表格格式(默认) SELECT * FROM users \g
4. 编辑器命令
-- 编辑当前查询 edit \e -- 使用外部编辑器编辑查询 \! vi
五、批处理模式
1. 基本批处理
# 执行多个SQL文件 mysql -u root -p < script1.sql mysql -u root -p < script2.sql # 执行包含多条语句的脚本 mysql -u root -p << EOF USE test; SELECT * FROM users; SHOW TABLES; EOF
2. 带参数的批处理
#!/bin/bash
DB_USER="root"
DB_PASS="password"
DB_NAME="mydb"
mysql -u $DB_USER -p$DB_PASS $DB_NAME << EOF
INSERT INTO users (name, email) VALUES ('John', 'john@example.com');
UPDATE users SET status=1 WHERE id=1;
EOF六、实用技巧
1. 配置文件使用
# 使用配置文件(~/.my.cnf) [client] user=root password=your_password host=localhost # 连接时不需输入用户名密码 mysql
2. 执行时间统计
# 显示查询执行时间 mysql -u root -p -vvv -e "SELECT * FROM large_table"
3. 安全连接
# 使用SSL连接 mysql -u root -p --ssl-mode=REQUIRED # 指定SSL证书 mysql -u root -p --ssl-ca=ca.pem --ssl-cert=client-cert.pem --ssl-key=client-key.pem
4. 性能相关选项
# 不预读结果 mysql -u root -p --quick # 压缩协议 mysql -u root -p --compress # 启用管道协议 mysql -u root -p --pipe
七、退出命令
-- 退出mysql客户端 exit quit \q -- 快捷键 Ctrl + D -- Unix/Linux Ctrl + Z -- Windows
八、实用示例集合
1. 数据库备份和恢复
# 备份数据库 mysqldump -u root -p database_name > backup.sql # 恢复数据库 mysql -u root -p database_name < backup.sql # 只备份结构 mysqldump -u root -p --no-data database_name > structure.sql # 只备份数据 mysqldump -u root -p --no-create-info database_name > data.sql
2. 监控和状态检查
# 查看MySQL状态 mysql -u root -p -e "SHOW STATUS" # 查看进程列表 mysql -u root -p -e "SHOW PROCESSLIST" # 查看变量 mysql -u root -p -e "SHOW VARIABLES" # 查看引擎状态 mysql -u root -p -e "SHOW ENGINE INNODB STATUS\G"
3. 性能测试
# 多次执行查询
mysql -u root -p -e "SELECT BENCHMARK(1000000, MD5('test'))"九、常见问题解决
1. 连接问题
# 连接被拒绝 mysql -u root -p --host=127.0.0.1 # 套接字连接 mysql -u root -p --socket=/tmp/mysql.sock # 跳过DNS解析 mysql -u root -p --skip-name-resolve
2. 编码问题
# 设置字符集 mysql -u root -p --default-character-set=utf8mb4 # 检查当前编码 mysql -u root -p -e "SHOW VARIABLES LIKE 'character_set%'"
十、完整示例脚本
#!/bin/bash # mysql_operations.sh DB_USER="admin" DB_PASS="secure_pass" DB_NAME="app_db" BACKUP_DIR="/backup/mysql" # 1. 备份数据库 echo "正在备份数据库..." mysqldump -u $DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/backup_$(date +%Y%m%d).sql # 2. 执行维护任务 echo "执行数据库维护..." mysql -u $DB_USER -p$DB_PASS $DB_NAME << EOF ANALYZE TABLE users; OPTIMIZE TABLE logs; CHECK TABLE transactions; EOF # 3. 生成报告 echo "生成数据库报告..." mysql -u $DB_USER -p$DB_PASS -t << EOF USE $DB_NAME; SELECT '数据库状态报告' AS ''; SELECT COUNT(*) AS '用户总数' FROM users; SELECT COUNT(*) AS '活跃用户数' FROM users WHERE status=1; SELECT table_name, table_rows, data_length, index_length FROM information_schema.tables WHERE table_schema='$DB_NAME'; EOF
这个详解涵盖了MySQL命令行客户端的主要功能。实际使用时,可以根据具体需求组合不同的选项和参数。
最新文章
mysql命令-mysqlimport2026-02-01
mysql命令-mysql_tzinfo_to_sql2026-02-01
mysql命令-mysql2026-02-01
mysql命令-my_print_defaults2026-02-01
mysql命令-mysqldumpslow2026-02-01
mysql命令-mysqld2026-02-01
mysql命令-mysql_secure_installation2026-02-01
mysql命令-myisampack2026-02-01
mysql命令-perror2026-02-01
mysql命令-mysqldump2026-02-01
