目录
- 前提条件:确保服务器已安装并运行 MySQL
- 访问方式一:在 Linux 服务器本地访问
- 访问方式二:从另一台 Linux/Mac 客户端远程访问
- 访问方式三:从 Windows 客户端远程访问
- 访问方式四:通过编程语言连接
- 常见问题与排查
- 安全最佳实践
前提条件:确保服务器已安装并运行 MySQL
在尝试访问之前,请确认你的 Linux 服务器上已经安装了 MySQL 或其分支(如 MariaDB),并且服务正在运行。

检查 MySQL 服务状态:
# 对于使用 systemd 的系统 (如 Ubuntu 16.04+, CentOS 7+) sudo systemctl status mysql # 对于使用 SysVinit 的系统 (如 CentOS 6, Ubuntu 14.04) sudo service mysql status
如果服务未运行,请启动它:
sudo systemctl start mysql # 或者 sudo service mysql start
设置 root 用户密码(如果尚未设置):
首次安装后,建议为 root 用户设置一个安全的密码。
sudo mysql_secure_installation
这个交互式脚本会引导你完成:

- 设置 root 密码
- 移除匿名用户
- 禁止 root 远程登录(推荐)
- 移除测试数据库
- 重新加载权限表
访问方式一:在 Linux 服务器本地访问
如果你正在登录的服务器本身就是 MySQL 数据库所在的服务器,这是最简单的方式。
方法 A: 使用 mysql 命令行客户端 (推荐)
这是最直接、最常用的方式。
- 打开终端。
- 输入以下命令并回车。
root用户没有密码,直接按回车即可。mysql -u root -p
-u:指定用户名,这里是root。-p:提示输入密码。
- 输入密码后,你将看到
mysql>提示符,表示已成功连接。
方法 B: 使用 sudo 访问

在某些系统(如 Ubuntu)中,root MySQL 用户可能对应于系统的 root 用户,你可以使用 sudo 来登录,此时可能不需要密码。
sudo mysql
这种方式会以 root@localhost 的身份登录,并且通常不会提示输入 MySQL 密码。
连接成功后,你可以执行 SQL 命令,
-- 查看所有数据库 SHOW DATABASES; -- 创建一个新数据库 CREATE DATABASE my_app_db; -- 使用这个数据库 USE my_app_db; -- 查看当前数据库的所有表 SHOW TABLES; -- 退出 EXIT;
访问方式二:从另一台 Linux/Mac 客户端远程访问
你需要从另一台计算机(客户端)访问 MySQL 服务器,这需要网络配置。
步骤 1: 在 MySQL 服务器上进行配置
-
登录到 MySQL 服务器(使用本地访问方式)。
-
允许远程用户登录,默认情况下,出于安全考虑,MySQL 不允许 root 远程登录,你应该为应用创建一个专用的用户。
-- 登录后执行 CREATE USER 'remote_user'@'%' IDENTIFIED BY 'a_strong_password';
'remote_user':你想要创建的用户名。- 这个通配符表示该用户可以从任何 IP 地址连接,为了更安全,你可以指定客户端的 IP 地址,
'192.168.1.100'。 'a_strong_password':为该用户设置一个强密码。
-
为该用户授予访问权限。
-- 授予所有数据库的所有权限(不推荐用于生产环境) GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%'; -- 更安全的方式:只授予特定数据库的权限 GRANT ALL PRIVILEGES ON my_app_db.* TO 'remote_user'@'%'; -- 刷新权限,使更改生效 FLUSH PRIVILEGES;
-
检查防火墙设置,MySQL 默认使用
3306端口,确保服务器的防火墙允许来自客户端的3306端口入站流量。# 使用 UFW (Ubuntu) sudo ufw allow 3306/tcp # 使用 firewalld (CentOS/RHEL) sudo firewall-cmd --permanent --add-port=3306/tcp sudo firewall-cmd --reload # 使用 iptables sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT sudo iptables-save > /etc/iptables/rules.v4
步骤 2: 在客户端计算机上连接
使用 mysql 命令行客户端,指定服务器的 IP 地址或主机名。
# 格式: mysql -h [服务器IP] -u [用户名] -p mysql -h 192.168.1.50 -u remote_user -p
然后输入你为 remote_user 设置的密码。
访问方式三:从 Windows 客户端远程访问
Windows 用户通常使用图形化工具来连接,这比命令行更直观。
推荐的图形化客户端工具:
- MySQL Workbench (官方出品,功能强大,免费)
- DBeaver (支持多种数据库,通用性强,免费)
- Navicat for MySQL (商业软件,界面友好,功能丰富)
连接步骤 (以 MySQL Workbench 为例):
- 下载并安装 MySQL Workbench。
- 打开软件,点击 号添加一个新的连接。
- 设置连接参数:
- Connection Name: 给这个连接起一个名字,如 "My Remote Server"。
- Hostname (or IP Address): 填写你的 MySQL 服务器的公网 IP 或内网 IP。
- Port: 默认是
3306。 - Username: 填写你创建的远程用户名,如
remote_user。
- 点击 "Test Connection"。
- 在弹出的窗口中输入该用户的密码。
- 如果连接成功,点击 "OK" 保存连接,之后你就可以双击该连接来管理数据库了。
访问方式四:通过编程语言连接
你的应用程序(如 Python, Java, PHP, Node.js)也需要连接到 MySQL 数据库。
通用步骤:
-
安装数据库驱动/库:
- Python:
pip install PyMySQL或pip install mysql-connector-python - Java: 添加 MySQL Connector/J 的
.jar文件到你的项目。 - PHP: 通常已内置
mysqli或PDO_MySQL扩展。 - Node.js:
npm install mysql2或npm install mysql
- Python:
-
编写连接代码:
Python (PyMySQL) 示例:
import pymysql
# 连接配置
connection = pymysql.connect(
host='192.168.1.50', # 或 'your_domain.com'
user='remote_user',
password='a_strong_password',
database='my_app_db',
cursorclass=pymysql.cursors.DictCursor # 以字典形式返回结果
)
try:
with connection.cursor() as cursor:
# 执行 SQL 查询
sql = "SELECT `id`, `name` FROM `users` LIMIT 10"
cursor.execute(sql)
# 获取所有结果
results = cursor.fetchall()
for row in results:
print(f"{row['id']}: {row['name']}")
finally:
# 关闭连接
connection.close()
常见问题与排查
问题 1: ERROR 2003 (HY000): Can't connect to MySQL server on '...' (111 "Connection refused")
- 原因: 最常见的原因是防火墙阻止了
3306端口,或者 MySQL 服务根本没有启动。 - 排查:
- 在服务器上检查
sudo systemctl status mysql。 - 检查防火墙规则 (
sudo ufw status或sudo firewall-cmd --list-all)。 - 确认 MySQL 是否在监听
3306端口:sudo ss -tulnp | grep 3306。
- 在服务器上检查
**问题 2: `ERROR
