启动MySQL命令行工具后,输入用户名和密码登录,执行SQL命令需以分号结束,输入exit或quit退出。
MySQL 命令行使用指南
MySQL 命令行工具简介
MySQL 命令行客户端(mysql
)是官方提供的数据库管理工具,通过纯文本界面执行 SQL 命令、管理数据及配置,相比图形化工具,它具有轻量高效、无需图形环境支持的优势,尤其适合服务器运维和自动化脚本场景。
连接 MySQL 服务器
基础连接命令
mysql -u [用户名] -p[密码] -h [主机地址] -P [端口]
- 参数说明:
-u
:指定用户名(如-u root
)-p
:提示输入密码(密码紧贴-p
会暴露在历史记录中,建议单独输入)-h
:服务器 IP(默认localhost
)-P
:端口号(默认3306
)
安全连接示例:
mysql -u root -p # 回车后手动输入密码
连接远程服务器
mysql -u admin -p -h 192.168.1.100 -P 3306
基础操作命令
数据库操作
命令 | 说明 |
---|---|
SHOW DATABASES; |
查看所有数据库 |
CREATE DATABASE testdb; |
创建新数据库 |
USE testdb; |
切换到指定数据库 |
DROP DATABASE testdb; |
删除数据库 |
数据表操作
-- 显示当前数据库的表 SHOW TABLES; -- 创建表 CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL, email VARCHAR(100) ); -- 查看表结构 DESCRIBE users;
数据增删改查(CRUD)
-- 插入数据 INSERT INTO users (name, email) VALUES ('张三', 'zhangsan@example.com'); -- 查询数据 SELECT * FROM users WHERE name LIKE '张%'; -- 更新数据 UPDATE users SET email = 'new_email@example.com' WHERE id = 1; -- 删除数据 DELETE FROM users WHERE id = 2;
高级功能
导入/导出数据
导出整个数据库:
mysqldump -u root -p testdb > backup.sql
导入 SQL 文件:
SOURCE /path/to/backup.sql; -- MySQL 命令行内执行
或通过终端:
mysql -u root -p testdb < backup.sql
用户与权限管理
-- 创建用户 CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password'; -- 授予权限(示例:赋予 testdb 的所有权限) GRANT ALL PRIVILEGES ON testdb.* TO 'newuser'@'localhost'; -- 刷新权限 FLUSH PRIVILEGES;
实用技巧
-
查看服务器状态:
STATUS; -- 显示版本、连接ID、当前数据库等
-
执行系统命令:
SYSTEM ls /tmp; -- 在 MySQL 命令行中执行操作系统命令
-
批处理模式:
mysql -u root -p -e "SHOW DATABASES;" # 直接执行单条命令
-
输出格式化:
SELECT * FROM usersG -- 垂直显示结果(适合宽表)
安全注意事项
-
密码安全:
- 避免使用
-p[密码]
形式(密码会暴露在终端历史) - 使用
mysql_config_editor
存储加密凭证:mysql_config_editor set --login-path=local --user=root --password
- 避免使用
-
最小权限原则:
- 日常操作避免使用
root
账户 - 按需分配用户权限(如只读、特定表权限)
- 日常操作避免使用
常见问题解决
-
连接失败:
- 检查服务状态:
systemctl status mysql
- 验证端口监听:
netstat -tuln | grep 3306
- 确认用户远程访问权限(
'user'@'%'
)
- 检查服务状态:
-
忘记密码:
# 步骤1:停用MySQL认证 mysqld_safe --skip-grant-tables & # 步骤2:重置密码 mysql -u root UPDATE mysql.user SET authentication_string=PASSWORD('new_pass') WHERE User='root'; FLUSH PRIVILEGES;
退出命令行
EXIT; -- 或 q
引用说明:
- 基于 MySQL 8.0 官方文档(dev.mysql.com/doc)整理
- 安全建议参考 OWASP 数据库安全指南(owasp.org)
- 命令兼容 MySQL 5.7 及以上版本
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/27582.html