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

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与密码间无空格,密码含特殊字符时用单引号包裹。

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

mysql -h 192.168.1.100 -u admin -p

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

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

连接后操作

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

图形化工具连接

  1. MySQL Workbench(官方推荐)

    • 安装:从 MySQL官网 下载对应版本。
    • 操作:
      1. 打开后点击 新建连接。
      2. 输入主机IP、端口、用户名、密码。
      3. 点击 Test Connection 测试连接。
  2. 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());
}
?>

常见问题解决

  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隧道加密

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

引用说明

  • MySQL 8.0官方文档:Connection Interfaces
  • Linux man-pages项目:mysql(1)手册
  • OWASP安全建议:Database Security
0