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

相关推荐

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信