上一篇
"小王盯着屏幕上的报错信息抓耳挠腮——明明昨天还能正常运行的MySQL导入脚本,今天突然提示权限错误,隔壁工位的DBA老张瞥了一眼,在终端敲了短短两行命令就解决了问题,这就是命令操作的魔力:看似简单的黑底白字窗口,藏着数据库管理的终极效率钥匙..."
连接MySQL服务器后,直接输入命令即时执行:
mysql -u root -p # 登录命令 Enter password: ****** mysql> SHOW DATABASES; # 分号结束语句 mysql> USE my_database; # 切换数据库
技巧:
Tab
键自动补全数据库/表名 \G
替换分号实现纵向显示结果(适合宽表数据) 将SQL语句保存为.sql
文件后执行:
mysql -u user -p db_name < script.sql
典型应用场景:
mysql> \T /tmp/mysql.log # 开启日志记录 mysql> \! cat /tmp/mysql.log # 查看记录内容 mysql> pager less # 设置分页查看(Linux环境)
START TRANSACTION; UPDATE accounts SET balance = balance - 100 WHERE user_id = 1; UPDATE accounts SET balance = balance + 100 WHERE user_id = 2; COMMIT; -- 或 ROLLBACK 回滚
关键点:
BEGIN
替代START TRANSACTION
更简洁 SET autocommit=0
关闭自动提交 -- 查看当前等待超时设置 SHOW VARIABLES LIKE 'wait_timeout'; -- 临时修改(服务重启后失效) SET GLOBAL wait_timeout = 300;
-- 查看运行中的进程 SHOW PROCESSLIST; -- 终止指定ID的查询 KILL 12345;
# Linux系统默认日志路径 tail -f /var/log/mysql/error.log # Windows服务管理器中查看日志路径
EXPLAIN SELECT * FROM orders WHERE user_id = 100;
解读重点:
type
列显示ALL表示全表扫描 key
列显示实际使用的索引 生产环境禁忌
DROP DATABASE
不加条件 SELECT
验证DELETE/UPDATE
条件 密码安全策略
# 推荐方式(密码不显示在历史记录) mysql_config_editor set --login-path=local --host=localhost --user=admin --password
备份优先原则
mysqldump -u root -p --single-transaction my_db > backup_$(date +%F).sql
批处理加速
-- 低效方式 INSERT INTO users (name) VALUES ('Alice'); INSERT INTO users (name) VALUES ('Bob'); -- 高效方式 INSERT INTO users (name) VALUES ('Alice'), ('Bob');
客户端快捷键
Ctrl+C
中断当前命令而不退出客户端 Ctrl+L
清屏(等效Linux的clear命令) 跨数据库查询
SELECT * FROM db1.users JOIN db2.orders ON db1.users.id = db2.orders.user_id;
"当你能不假思索地敲出mysqladmin ping
检查服务状态,当GROUP_CONCAT()
和WITH ROLLUP
成为你的数据分析利器,这些命令就不再是冰冷的代码,而是延伸思维的数字触角。—每个DBA高手都曾在某个深夜,对着ERROR 1064
的提示咬牙切齿,而突破这道门槛的钥匙,就藏在持之以恒的实践与总结中。"
(注:本文命令测试环境为MySQL 8.0.33,部分特性在旧版本可能不适用)
本文由 悉强 于2025-08-02发表在【云服务器提供商】,文中图片由(悉强)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/511843.html
发表评论