本地连接 MySQL 数据库,最常用、最直接的方式就是使用 MySQL 客户端命令行工具(
mysql命令)。前提是你的 MySQL 服务已安装并正在运行,且客户端工具可用(通常随 MySQL Server 或 MySQL Client 包一起安装)。
确认 MySQL 服务正在运行
连接前必须确保 MySQL 服务已启动:
Windows:打开“服务”管理器(services.msc),查找名为 MySQL 或 MySQL80 的服务,状态应为“正在运行” macOS(Homebrew 安装):终端执行
brew services list | grep mysql,状态应为 started Linux(systemd):运行
sudo systemctl status mysql或
sudo systemctl status mysqld
基础命令格式
在终端(macOS/Linux)或命令提示符/PowerShell(Windows)中输入:
mysql -u 用户名 -p
例如,用 root 用户连接:
mysql -u root -p
回车后会提示输入密码(输入时不会显示字符,输完直接按回车)。
常用可选参数说明
可根据需要添加以下参数:
-h 127.0.0.1:显式指定主机为本地 IPv4 地址(走 TCP/IP 协议);不加默认可能走 socket 文件(Unix/Linux/macOS)
-h localhost:效果类似,但部分系统下
localhost会强制走 socket,而
127.0.0.1强制走 TCP
-P 3306:指定端口(默认 3306,一般不用写)
-D 数据库名:连接后自动选择指定数据库,如
mysql -u root -p -D myapp
--socket=/tmp/mysql.sock(macOS/Linux):手动指定 socket 文件路径(当报错 “Can’t connect to local MySQL server” 且服务确实在运行时,可能需此参数)
连接失败常见原因与应对
若执行
mysql -u root -p后提示
ERROR 1045 (28000): Access denied或
ERROR 2002 (HY000): 密码错误:确认是否修改过 root 密码;如遗忘,需通过跳过权限验证方式重置 用户无本地访问权限:MySQL 8.0+ 默认 root 只允许
localhost或
127.0.0.1连接,不能用
%远程通配;检查
SELECT host,user FROM mysql.user;socket 文件路径不对:尤其在多版本共存或非标准安装时,用
mysql --socket=xxx --no-defaults -u root -p指定 MySQL 未监听本地连接:检查配置文件(
my.cnf或
my.ini)中是否有
bind-address = 127.0.0.1(正常)或
bind-address = ::1(IPv6),避免设为
0.0.0.0或注释掉导致绑定异常
不复杂但容易忽略。连上后你会看到
mysql>提示符,就可以执行 SQL 命令了。
