上一篇
Linux如何访问MySQL数据库
- 数据库
- 2025-06-19
- 4253
在Linux中连接MySQL数据库,首先确保MySQL服务运行,使用命令行工具mysql,输入命令:mysql -u 用户名 -p,按提示输入密码,可选-h指定主机地址。
连接前的准备
-
安装MySQL客户端
若未安装客户端工具,执行以下命令:# Ubuntu/Debian sudo apt update && sudo apt install mysql-client # CentOS/RHEL sudo yum install mysql
-
确认数据库信息
- 数据库服务器IP地址(如
0.0.1) - 端口号(默认
3306) - 用户名(如
root)和密码 - 数据库名称(如
mydb)
- 数据库服务器IP地址(如
-
验证网络和权限
- 确保防火墙允许访问MySQL端口:
sudo ufw allow 3306/tcp # Ubuntu
- 检查用户远程连接权限(在MySQL服务器执行):
GRANT ALL PRIVILEGES ON *.* TO 'username'@'client_ip' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;
- 确保防火墙允许访问MySQL端口:
命令行连接(最常用)
基础连接
mysql -h [主机IP] -P [端口] -u [用户名] -p[密码] [数据库名]
- 示例:
mysql -h 192.168.1.100 -P 3306 -u admin -p'MyPass123' mydb
注意:
-p与密码间无空格,密码含特殊字符时用单引号包裹。
交互式输入密码(更安全)
mysql -h 192.168.1.100 -u admin -p
执行后终端会提示输入密码,避免密码泄露。

连接后操作
SHOW DATABASES; -- 查看所有数据库 USE mydb; -- 切换数据库 SELECT * FROM users; -- 查询数据 EXIT; -- 退出
图形化工具连接
-
MySQL Workbench(官方推荐)
- 安装:从 MySQL官网 下载对应版本。
- 操作:
- 打开后点击 新建连接。
- 输入主机IP、端口、用户名、密码。
- 点击
Test Connection测试连接。
-
DBeaver(开源跨平台)
- 支持SSH隧道和SSL加密,适合远程安全连接。
- 下载地址:DBeaver官网。
编程语言连接示例
Python(使用mysql-connector-python)
import mysql.connector
config = {
"host": "192.168.1.100",
"port": 3306,
"user": "admin",
"password": "MyPass123",
"database": "mydb"
}
try:
conn = mysql.connector.connect(**config)
cursor = conn.cursor()
cursor.execute("SELECT VERSION()")
print("MySQL版本:", cursor.fetchone()[0])
except mysql.connector.Error as err:
print("连接失败:", err)
finally:
if conn.is_connected():
cursor.close()
conn.close()
PHP(PDO扩展)
<?php
$host = "192.168.1.100";
$dbname = "mydb";
$user = "admin";
$pass = "MyPass123";
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
echo "连接成功!";
} catch (PDOException $e) {
die("错误: " . $e->getMessage());
}
?>
常见问题解决
-
错误:
Access denied for user- 检查用户名/密码是否正确。
- 确认用户是否有远程访问权限(用代替IP允许所有主机)。
-
错误:
Can't connect to MySQL server on 'x.x.x.x'
- 验证MySQL服务是否运行:
systemctl status mysql - 检查防火墙或云服务器安全组规则。
- 验证MySQL服务是否运行:
-
连接缓慢
在/etc/mysql/my.cnf中添加:[mysqld] skip-name-resolve # 禁用DNS反向解析
安全连接建议
-
使用SSH隧道加密
ssh -L 3306:localhost:3306 user@mysql_server_ip
连接时改用
-h 127.0.0.1,数据通过SSH加密传输。 -
启用SSL连接

- 在MySQL配置中启用SSL,连接时添加参数:
mysql --ssl-mode=REQUIRED -u admin -p
- 在MySQL配置中启用SSL,连接时添加参数:
-
避免明文密码
- 将密码存储在
.my.cnf文件(权限设为600):[client] user = admin password = "MyPass123"
- 将密码存储在
掌握Linux下MySQL连接是高效管理数据的基础,命令行适合快速操作,图形工具提升可视化效率,编程接口支持自动化开发,务必遵循最小权限原则,定期更新密码,并利用加密技术保障数据安全。
引用说明:
- MySQL 8.0官方文档:Connection Interfaces
- Linux man-pages项目:mysql(1)手册
- OWASP安全建议:Database Security
