安装好MySQL之后,掌握其命令行操作是每位数据库管理员和开发者的必备技能
本文将带你深入了解如何在命令行中与MySQL交互,从基本连接到高级管理操作,让你对MySQL的命令行使用游刃有余
一、MySQL命令行基础入门 1.1 启动MySQL服务 在开始之前,确保MySQL服务已经启动
在Windows系统中,可以通过“服务管理器”找到MySQL服务并启动;在Linux或macOS上,则通常使用如下命令: bash sudo service mysql start 对于基于Systemd的系统,如较新版本的Ubuntu 或者 sudo systemctl start mysql 另一种启动服务的命令 1.2 登录MySQL 打开命令行界面(Windows中的CMD、PowerShell,Linux或macOS中的Terminal),输入以下命令登录MySQL: bash mysql -u root -p 这里`-u root`指定了用户名(通常为root),`-p`表示将提示输入密码
输入密码后(注意,出于安全考虑,输入时字符不会显示在屏幕上),你将进入MySQL命令行界面
1.3 基本命令概览 -`h` 或`help`:显示帮助信息
-`s` 或`status`:查看MySQL服务器状态
-`q` 或`quit`:退出MySQL命令行
二、数据库与表的管理 2.1 创建数据库 使用`CREATE DATABASE`语句创建一个新的数据库: sql CREATE DATABASE mydatabase; 2.2 选择数据库 在创建或操作表之前,需要先选择目标数据库: sql USE mydatabase; 2.3 创建表 使用`CREATE TABLE`语句定义表结构
例如,创建一个简单的用户表: sql CREATE TABLE users( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, email VARCHAR(100), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); 2.4 查看表结构 使用`DESCRIBE`或`SHOW COLUMNS`查看表的结构: sql DESCRIBE users; 或 sql SHOW COLUMNS FROM users; 2.5 修改表结构 - 添加列: sql ALTER TABLE users ADD COLUMN age INT; - 修改列: sql ALTER TABLE users MODIFY COLUMN email VARCHAR(150); - 删除列: sql ALTER TABLE users DROP COLUMN age; 2.6 删除表与数据库 - 删除表: sql DROP TABLE users; - 删除数据库: sql DROP DATABASE mydatabase; 三、数据操作 3.1 插入数据 使用`INSERT INTO`语句向表中插入数据: sql INSERT INTO users(username, email) VALUES(john_doe, john@example.com); 3.2 查询数据 使用`SELECT`语句从表中检索数据
基本查询: sql SELECTFROM users; 条件查询: sql SELECT - FROM users WHERE username = john_doe; 3.3 更新数据 使用`UPDATE`语句修改现有记录: sql UPDATE users SET email = john_new@example.com WHERE username = john_doe; 3.4 删除数据 使用`DELETE`语句删除记录: sql DELETE FROM users WHERE username = john_doe; 四、高级操作与优化 4.1 索引管理 索引能显著提高查询性能
创建索引: sql CREATE INDEX idx_username ON users(username); 删除索引: sql DROP INDEX idx_username ON users; 4.2 数据备份与恢复 - 备份数据库:使用`mysqldump`工具
例如,备份`mydatabase`: bash mysqldump -u root -p mydatabase > mydatabase_backup.sql - 恢复数据库:将备份文件导入MySQL: bash mysql -u root -p mydatabase < mydatabase_backup.sql 4.3 性能监控与优化 - 查看慢查询日志:首先确保慢查询日志已启用,然后分析日志内容以识别性能瓶颈
sql SET GLOBAL slow_query_log = ON; - 使用`EXPLAIN`分析查询计划,优化SQL语句
sql EXPLAIN SELECT - FROM users WHERE username = john_doe; 五、安全实践 5.1 用户与权限管理 - 创建新用户: sql CREATE USER newuser@localhost IDENTIFIED BY password; - 授予权限: sql GRANT ALL PRIVILEGES ON mydatabase. TO newuser@localhost; - 刷新权限: sql FLUSH PRIVILEGES; - 撤销权限或删除用户: sql REVOKE ALL PRIVILEGES ON mydatabase- . FROM newuser@localhost; DROP USER newuser@localhost; 5.2 安全性配置 - 使用强密码策略