当前位置:首页 > 数据库 > 正文

Linux如何访问MySQL数据库

在Linux中连接MySQL数据库,首先确保MySQL服务运行,使用命令行工具mysql,输入命令:mysql -u 用户名 -p,按提示输入密码,可选-h指定主机地址。

连接前的准备

  1. 安装MySQL客户端

    若未安装客户端工具,执行以下命令:

    # Ubuntu/Debian sudo apt update && sudo apt install mysql-client # CentOS/RHEL sudo yum install mysql
  2. 确认数据库信息

    • 数据库服务器IP地址(如0.0.1)
    • 端口号(默认3306)
    • 用户名(如root)和密码
    • 数据库名称(如mydb)
  3. 验证网络和权限

    • 确保防火墙允许访问MySQL端口: sudo ufw allow 3306/tcp # Ubuntu
    • 检查用户远程连接权限(在MySQL服务器执行): GRANT ALL PRIVILEGES ON *.* TO 'username'@'client_ip' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;


命令行连接(最常用)

基础连接

mysql -h [主机IP] -P [端口] -u [用户名] -p[密码] [数据库名]

  • 示例: mysql -h 192.168.1.100 -P 3306 -u admin -p'MyPass123' mydb

    注意:-p与密码间无空格,密码含特殊字符时用单引号包裹。

    Linux如何访问MySQL数据库 第1张

交互式输入密码(更安全)

mysql -h 192.168.1.100 -u admin -p

执行后终端会提示输入密码,避免密码泄露。

连接后操作

SHOW DATABASES; -- 查看所有数据库 USE mydb; -- 切换数据库 SELECT * FROM users; -- 查询数据 EXIT; -- 退出


图形化工具连接

  1. MySQL Workbench(官方推荐)

    • 安装:从 MySQL官网 下载对应版本。
    • 操作:
      1. 打开后点击 新建连接。
      2. 输入主机IP、端口、用户名、密码。
      3. 点击 Test Connection 测试连接。

  2. DBeaver(开源跨平台)

    Linux如何访问MySQL数据库 第2张

    • 支持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()); } ?>


常见问题解决

  1. 错误:Access denied for user

    • 检查用户名/密码是否正确。
    • 确认用户是否有远程访问权限(用代替IP允许所有主机)。
  2. 错误:Can't connect to MySQL server on 'x.x.x.x'

    • 验证MySQL服务是否运行:systemctl status mysql
    • 检查防火墙或云服务器安全组规则。
  3. 连接缓慢

    在/etc/mysql/my.cnf中添加:

    [mysqld] skip-name-resolve # 禁用DNS反向解析


安全连接建议

  1. 使用SSH隧道加密

    Linux如何访问MySQL数据库 第3张

    ssh -L 3306:localhost:3306 user@mysql_server_ip

    连接时改用-h 127.0.0.1,数据通过SSH加密传输。

  2. 启用SSL连接

    • 在MySQL配置中启用SSL,连接时添加参数: mysql --ssl-mode=REQUIRED -u admin -p
  3. 避免明文密码

    • 将密码存储在.my.cnf文件(权限设为600): [client] user = admin password = "MyPass123"


掌握Linux下MySQL连接是高效管理数据的基础,命令行适合快速操作,图形工具提升可视化效率,编程接口支持自动化开发,务必遵循最小权限原则,定期更新密码,并利用加密技术保障数据安全。

引用说明

0