命令行登录MySQL是数据库管理中常用的操作方式,尤其适用于服务器环境或需要高效执行SQL指令的场景,以下是详细的操作步骤、注意事项及相关技巧,帮助用户顺利完成登录并管理MySQL数据库。

确保系统已安装MySQL服务,并且环境变量中包含MySQL的bin目录路径,打开命令行工具(Windows下为CMD或PowerShell,Linux/macOS下为Terminal),输入以下基本命令尝试登录:
mysql -u 用户名 -p
-u后接MySQL的用户名(如root),-p表示需要输入密码,执行后会提示输入密码,输入时不会显示字符,这是正常的安全设计,若密码正确,即可进入MySQL命令行界面,显示类似mysql>的提示符。
如果MySQL服务未启动,需先启动服务,Windows下可通过服务管理器找到MySQL服务并启动,或使用命令:
net start mysql
Linux下则使用:

sudo systemctl start mysql
对于远程登录MySQL,需指定主机地址:
mysql -h 主机IP -u 用户名 -p
mysql -h 192.168.1.100 -u root -p,此时需确保目标MySQL服务器允许远程连接(需修改user表中的host字段,或授权特定IP)。
登录后,可通过以下命令查看数据库列表:
SHOW DATABASES;
选择数据库使用:

USE 数据库名;
USE test_db;。
若忘记密码,可通过跳过权限表的方式重置,Windows下停止MySQL服务,以安全模式启动:
mysqld --skip-grant-tables
Linux下则修改配置文件my.cnf,在[mysqld]下添加skip-grant-tables,然后重启服务,登录后执行:
UPDATE mysql.user SET authentication_string=PASSWORD('新密码') WHERE User='root';
FLUSH PRIVILEGES;
最后恢复配置并重启服务。
以下是常见登录参数的说明表:
| 参数 | 说明 | 示例 |
|---|---|---|
-u |
指定用户名 | -u admin |
-p |
提示输入密码 | -p |
-h |
指定主机地址 | -h 127.0.0.1 |
-P |
指定端口号 | -P 3307 |
-S |
指定socket文件路径 | -S /tmp/mysql.sock |
登录后,可通过EXIT;或QUIT;退出MySQL命令行界面,若遇到“Access denied”错误,检查用户名、密码及主机权限;若提示“Can't connect to MySQL server”,则检查MySQL服务状态、网络连接或防火墙设置。
在Linux/macOS中,可通过配置.my.cnf文件避免重复输入密码,文件内容如下:
[client] user=用户名 password=密码
保存后,直接输入mysql即可登录,但需注意文件权限设置为仅当前用户可读(chmod 600 .my.cnf)。
对于需要频繁执行SQL脚本的情况,可通过以下命令直接执行文件:
mysql -u 用户名 -p 数据库名 < 脚本文件.sql
mysql -u root -p test_db < backup.sql。
相关问答FAQs:
Q1: 忘记MySQL root密码怎么办?
A1: 可通过跳过权限表重置密码,具体步骤为:停止MySQL服务,以安全模式启动(Windows下mysqld --skip-grant-tables,Linux下修改my.cnf添加skip-grant-tables),登录后执行UPDATE mysql.user SET authentication_string=PASSWORD('新密码') WHERE User='root';,刷新权限并重启服务。
Q2: 如何设置MySQL允许远程连接?
A2: 登录MySQL后,执行GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码';(表示允许所有IP),或指定特定IP如'192.168.1.%',最后执行FLUSH PRIVILEGES;使权限生效,同时需检查服务器防火墙是否开放3306端口。
