Linux如何进入MySQL/MariaDB命令行?

前提条件

  1. 已安装MySQL服务
    通过包管理器安装(示例):

    # Ubuntu/Debian
    sudo apt update && sudo apt install mysql-server
    # CentOS/RHEL
    sudo yum install mysql-server
  2. 确保服务已启动

    sudo systemctl start mysql    # 启动服务
    sudo systemctl enable mysql   # 设置开机自启
  3. 拥有有效用户名和密码

    • 默认管理员账户:root(安装时可能已设置密码)。
    • 若忘记密码,需重置root密码。

进入MySQL命令行的3种方法

方法1:使用系统root账户直接登录(推荐)

sudo mysql -u root
  • 适用场景:Ubuntu/Debian系统默认配置(无需密码验证)。
  • 原理:利用sudo权限匹配系统用户与数据库用户(通过auth_socket插件认证)。
  • 成功标志:出现提示符 mysql>

方法2:通过密码验证登录

mysql -u 用户名 -p
  • 步骤
    1. 输入命令后按回车。
    2. 在提示 Enter password: 时输入密码(密码不可见)。
  • 示例
    mysql -u root -p       # 登录root账户
    mysql -u alice -p      # 登录普通用户alice

方法3:指定主机和端口(远程/特殊端口)

mysql -u 用户名 -p -h 主机IP -P 端口号
  • 示例
    mysql -u admin -p -h 192.168.1.100 -P 3306
  • 注意
    • 默认端口为3306,若修改过需指定-P参数。
    • 远程登录需确保:
      • MySQL配置允许远程连接(修改bind-address=0.0.0.0)。
      • 用户有远程访问权限(如GRANT ALL ON *.* TO 'user'@'%')。

常见问题解决

报错:Access denied for user 'root'@'localhost'

  • 原因:密码错误或权限不足。
  • 解决方案
    1. 尝试用sudo mysql -u root跳过密码。
    2. 重置密码:
      sudo mysql --skip-grant-tables &  # 启动无验证模式
      mysql -u root                     # 新终端登录
      FLUSH PRIVILEGES;
      ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

报错:Can't connect to local MySQL server

  • 原因:MySQL服务未运行。
  • 解决
    sudo systemctl status mysql  # 检查状态
    sudo systemctl restart mysql # 重启服务

报错:Command 'mysql' not found

  • 原因:未安装MySQL客户端。
  • 解决
    sudo apt install mysql-client  # Ubuntu/Debian
    sudo yum install mysql         # CentOS/RHEL

安全建议

  1. 避免使用root远程登录
    创建专用账户并限制权限:

    CREATE USER 'user'@'%' IDENTIFIED BY '强密码';
    GRANT SELECT,INSERT ON 数据库.* TO 'user'@'%';
  2. 删除测试数据库
    DROP DATABASE test;
  3. 定期更新密码
    ALTER USER 'user'@'localhost' IDENTIFIED BY '新密码';

  • 本地快速登录:sudo mysql -u root
  • 密码验证登录:mysql -u 用户名 -p
  • 远程登录需指定IP和端口,并配置权限。
    掌握这些操作后,您可高效管理数据库,首次使用建议从本地登录开始,逐步尝试远程连接。

引用说明:本文方法基于MySQL 8.0官方文档的客户端连接指南及Linux权限管理实践,安全建议参考OWASP数据库安全规范。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6566.html

(0)
酷番叔酷番叔
上一篇 2025年7月7日 12:03
下一篇 2025年7月7日 12:21

相关推荐

  • 软件包如何拷到Linux系统?

    在Linux系统中,将软件包拷贝到本地是常见的操作,无论是安装开源程序、部署应用还是迁移数据,都需要掌握多种拷贝方法,本文将详细介绍通过外部存储设备、网络协议、云存储及命令行工具等不同场景下的软件包拷贝方式,并分析各方法的优缺点及操作步骤,帮助用户根据实际需求选择合适的方案,通过本地外部存储设备拷贝软件包对于离……

    2025年9月28日
    16100
  • 月入过万为何存不下钱?

    Approach指解决问题或达成目标的具体方法或路径,包括策略、步骤和工具的选择与实施,旨在系统化、高效地实现预期结果。

    2025年7月28日
    16000
  • Linux下如何写脚本?新手入门指南与实用技巧

    在Linux系统中,脚本编程是提升工作效率的核心技能之一,通过将重复性操作封装为可执行的脚本文件,能够实现自动化任务处理、系统管理、批量数据处理等目标,Linux脚本通常使用Shell(如Bash、Zsh等)编写,本文将详细介绍Linux脚本的编写方法,从基础语法到进阶技巧,帮助读者快速上手,脚本环境准备与基础……

    2025年9月17日
    24700
  • 如何在Linux系统中编译C程序?详细步骤有哪些?

    在Linux环境下编译C程序是开发者的基础技能,核心工具是GNU编译器套件(GCC),本文将从环境准备、基础编译流程、多文件管理、库的使用、编译选项优化到错误处理,详细拆解编译过程,帮助读者掌握完整的C程序编译方法,环境准备:确认GCC安装Linux系统通常默认安装GCC,可通过终端输入以下命令检查版本:gcc……

    2025年8月22日
    14900
  • Linux如何释放内存?手动释放与自动优化技巧详解

    Linux系统中的内存释放是一个需要结合其内存管理机制来理解的过程,与Windows等系统的“清空内存”概念不同,Linux采用“内存预读”和“缓存优化”策略,会主动将空闲内存用于文件缓存(page cache)、目录项缓存(dentries)和索引节点缓存(inodes),以提升后续访问速度,所谓的“释放内存……

    2025年9月27日
    17000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信