菜鸟科技网

如何用命令模式进入MySQL?

最基本、最常用的命令

如果您只需要连接到本地(同一台机器)的 MySQL 服务器,并且用户名是 root,那么您只需要这一条命令:

如何用命令模式进入MySQL?-图1
(图片来源网络,侵删)
mysql -u root -p

命令分解:

  • mysql: 这是 MySQL 客户端程序的命令。
  • -u: user 的缩写,用于指定用户名。
  • root: MySQL 的超级管理员用户名。
  • -p: password 的缩写,表示需要输入密码。注意: -p 后面通常不直接跟密码,这样更安全,可以避免密码在命令历史中泄露。

执行步骤:

  1. 打开您的终端(在 Windows 上是 cmdPowerShell,在 macOS 或 Linux 上是 Terminal)。
  2. 输入 mysql -u root -p 然后按回车。
  3. 系统会提示您输入密码:Enter password:
  4. 输入您在安装 MySQL 时为 root 用户设置的密码,然后按回车。
  5. 如果密码正确,您将看到 mysql> 提示符,表示您已成功进入 MySQL 命令行界面。

连接到远程 MySQL 服务器

如果您需要连接到另一台计算机上的 MySQL 服务器,需要指定该计算机的 IP 地址或主机名。

mysql -u [远程用户名] -p -h [远程服务器IP地址] -P [端口号]

参数说明:

如何用命令模式进入MySQL?-图2
(图片来源网络,侵删)
  • -h (host): 指定远程 MySQL 服务器的 IP 地址或主机名。
  • -P (Port): 指定 MySQL 服务器监听的端口号,MySQL 的默认端口是 3306,如果使用默认端口,可以省略 -P 3306

示例:

假设远程服务器的 IP 是 168.1.100,用户名是 db_user,端口是默认的 3306

mysql -u db_user -p -h 192.168.1.100

重要提示: 要连接到远程 MySQL 服务器,您必须在远程服务器上进行以下配置:

  1. 允许远程连接:登录到远程服务器的 MySQL,执行 GRANT ALL PRIVILEGES ON *.* TO 'db_user'@'%' IDENTIFIED BY 'password';(请根据实际情况修改用户名和密码),然后执行 FLUSH PRIVILEGES;
  2. 防火墙放行:确保服务器的防火墙(如 ufw, firewalld 或云服务商的安全组)允许来自您 IP 地址的 3306 端口访问。

连接后指定要使用的数据库

连接 MySQL 后,您可以使用 USE [数据库名]; 命令来切换数据库,但您也可以在连接时直接指定要进入的数据库。

如何用命令模式进入MySQL?-图3
(图片来源网络,侵删)
mysql -u [用户名] -p -h [主机] [数据库名]

示例:

连接到本地 root 用户,并直接进入名为 my_database 的数据库。

mysql -u root -p my_database

执行此命令后,您会先输入密码,成功连接后会直接看到 my_database> 提示符,无需再执行 USE my_database;


其他常用连接选项

选项 全称 描述
-u, --user=name --user 指定登录的用户名。
-p, --password[=name] --password 提示输入密码。 后跟密码,密码会明文显示,不安全,不推荐。
-h, --host=name --host 指定服务器主机名或 IP 地址。
-P, --port=# --port 指定端口号。
-S, --socket=file_name --socket 指定连接到本地 MySQL 服务器时使用的 Unix 套接字文件,这在 macOS 或某些 Linux 发行版中很常见。
-D, --database=name --database 指定登录后要使用的数据库名。
-e, --execute=name --execute 非常实用! 在不进入交互式终端的情况下,直接执行一条 SQL 语句并退出。

实用技巧

使用 -e 选项执行单条 SQL 命令

当您需要在脚本中自动化执行 SQL 时,这个选项非常有用。

示例:

查看 my_database 数据库中 users 表的所有数据。

mysql -u root -p my_database -e "SELECT * FROM users;"

执行后,终端会提示您输入密码,验证通过后,会直接输出查询结果,然后自动退出 MySQL。

连接时指定套接字文件

在某些情况下(例如使用 Homebrew 安装的 macOS),MySQL 可能不监听网络端口,而是使用本地套接字文件,您需要使用 -S 选项。

示例 (macOS):

# 查找套接字文件位置通常在 /tmp 或 /var/mysql 下
mysql -u root -p -S /tmp/mysql.sock

如何退出 MySQL 命令行

mysql> 提示符下,您可以使用以下任意命令退出:

QUIT;
exit;
\q

Ctrl + D 也可以退出。


常见问题排查

问题 1:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

原因: 客户端找不到 MySQL 服务器的 Unix 套接字文件,这通常意味着 MySQL 服务没有运行,或者客户端配置的套接字路径不正确。 解决方法:

  1. 检查 MySQL 服务是否正在运行:sudo systemctl status mysql (Linux) 或使用其他服务管理工具。
  2. 如果服务未运行,启动它:sudo systemctl start mysql
  3. 如果服务在运行,尝试使用 -S 选项指定正确的套接字文件路径(如上节所述)。

问题 2:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

原因: 用户名或密码错误。 解决方法:

  1. 核对密码:仔细检查您输入的密码是否正确。
  2. 重置密码:如果您忘记了密码,需要按照 MySQL 官方文档进行密码重置流程,这通常需要停止 MySQL 服务,以安全模式启动,然后修改 mysql 数据库中的 user 表。

希望这份详细的指南能帮助您顺利进入 MySQL!

分享:
扫描分享到社交APP
上一篇
下一篇