Linux如何登录MySQL?

在Linux终端中,输入命令“mysql -u 用户名 -p”登录MySQL,系统会提示输入密码,确保MySQL服务已启动。

基础登录方法(命令行)

使用密码直接登录

mysql -u 用户名 -p
  • 步骤说明
    1. 输入命令后按回车,系统提示 Enter password:
    2. 手动输入密码(输入时密码不可见),成功后进入MySQL交互界面。
    3. 退出时输入 exitq
  • 示例(用户名为 root):
    mysql -u root -p

指定主机和端口

mysql -u 用户名 -p -h 主机地址 -P 端口号
  • 适用场景:连接远程MySQL服务器(如云数据库)。
  • 示例(连接IP为 168.1.100 的3307端口):
    mysql -u admin -p -h 192.168.1.100 -P 3307

安全登录实践

避免密码暴露(使用配置⽂件)

创建 ~/.my.cnf 文件存储凭据,避免命令行记录密码:

Linux如何登录MySQL?

[client]
user = 你的用户名
password = 你的密码
host = 主机地址(可选)
port = 端口(可选)

操作步骤

  1. 生成配置文件并设置权限:
    touch ~/.my.cnf
    chmod 600 ~/.my.cnf  # 限制仅当前用户可读
    nano ~/.my.cnf       # 编辑文件填入上述内容
  2. 直接登录无需输密码:
    mysql  # 自动读取配置

使用登录路径(MySQL 5.6+)

通过 mysql_config_editor 加密存储凭据:

Linux如何登录MySQL?

mysql_config_editor set --login-path=别名 --user=用户名 --host=主机 --port=端口 --password
  • 执行后输入密码,登录时调用:
    mysql --login-path=别名

常见问题解决

错误:ERROR 1045 (28000): Access denied

  • 原因:用户名/密码错误、权限不足。
  • 解决方案
    1. 检查密码大小写及特殊字符。
    2. 确认用户是否有远程访问权限(本地登录后执行):
      GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码';
      FLUSH PRIVILEGES;

错误:ERROR 2002 (HY000): Can't connect to local MySQL server

  • 原因:MySQL服务未启动。
  • 解决方案
    sudo systemctl start mysql    # Ubuntu/Debian
    sudo systemctl start mysqld   # CentOS/RHEL

忘记root密码

  1. 停止MySQL服务:
    sudo systemctl stop mysql
  2. 启动无权限验证模式:
    sudo mysqld_safe --skip-grant-tables &
  3. 登录并重置密码:
    UPDATE mysql.user SET authentication_string=PASSWORD('新密码') WHERE User='root';
    FLUSH PRIVILEGES;
  4. 重启MySQL服务。

安全建议

  1. 禁用root远程登录:创建普通用户并授权,避免直接使用root。
  2. 强密码策略:密码长度≥12位,包含大小写字母、数字、符号。
  3. 防火墙限制:仅允许可信IP访问MySQL端口(默认3306):
    sudo ufw allow from 可信IP to any port 3306
  4. 定期更新:保持MySQL版本为最新安全补丁。

  • 基础登录mysql -u 用户 -p 配合手动输入密码。
  • 安全实践:优先使用 ~/.my.cnfmysql_config_editor 避免密码泄露。
  • 故障排查:检查服务状态、网络权限及用户凭证。
  • 生产环境:务必遵循最小权限原则,定期审计账户。

引用说明
本文操作基于MySQL 5.7+及主流Linux发行版(Ubuntu/CentOS),安全建议参考MySQL官方安全指南[1],密码重置步骤遵循Oracle官方文档[2]。
[1] MySQL 8.0 Security Guidelines
[2] Resetting the Root Password

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

(0)
酷盾叔的头像酷盾叔
上一篇 2025年6月17日 06:55
下一篇 2025年6月17日 06:59

相关推荐

  • 如何在Linux中开放80端口?

    使用防火墙工具开放80端口,以firewalld为例:,1. 临时开放 sudo firewall-cmd –add-port=80/tcp,2. 永久开放 sudo firewall-cmd –add-port=80/tcp –permanent,3. 重载配置 sudo firewall-cmd –reload,确保服务(如Nginx/Apache)监听80端口。

    2025年6月7日
    100
  • linux如何关闭touchpad

    Linux中关闭触摸板,可使用xinput list命令查找触摸板设备ID,再执行xinput disable 设备ID来禁用,也可通过修改配置文件或安装配置工具实现永久禁用

    2025年7月21日
    100
  • Linux硬盘无法读取怎么办

    Linux系统通过内核驱动识别硬盘设备,在/dev目录下生成设备文件(如sda),用户需分区(如fdisk)、格式化(如mkfs)创建文件系统(如ext4),最后挂载到目录(mount)才能访问数据。

    2025年6月23日
    200
  • linux如何管理服务器

    nux服务器管理通过命令行工具实现,包括文件操作(ls/cd)、进程监控(top/ps)、用户权限(useradd/chmod)、软件包管理(apt-get/yum)及远程连接(SSH),结合系统日志与防火墙配置保障安全。

    2025年7月26日
    100
  • linux 单词如何换行

    Linux中,单词换行可通过以下方式:使用反斜杠(\)连接,如echo “Hello\World”;或用引号包含,如echo “Hello World”

    2025年7月12日
    200

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN