MySQL 本地免密登录

MySQL 本地免密登录可以通过以下两种常见方式实现:

1. 使用 auth_socket 插件(推荐方式,针对 Linux 环境)

auth_socket 插件允许 MySQL 使用操作系统用户进行身份验证,而不需要密码。默认情况下,这种方式主要用于 Linux 系统,可以实现本地用户直接通过系统身份进行免密登录。

步骤:
  1. 查看当前用户的身份验证插件

    sql 复制代码
    SELECT user, host, plugin FROM mysql.user WHERE user = 'root';

    看看当前 root 用户或其他用户是否已经使用了 auth_socket 插件。

  2. 修改用户身份验证插件为 auth_socket

    如果还未启用 auth_socket,可以运行以下命令将其应用到 root 用户(或你想免密登录的用户):

    sql 复制代码
    ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;

    这会让 root 用户通过操作系统的 root 用户身份登录,而无需密码。

  3. 重启 MySQL 服务

    修改插件后,需要重启 MySQL 服务:

    bash 复制代码
    sudo systemctl restart mysql
  4. 免密登录

    在终端中使用操作系统的 root 用户身份,可以直接运行以下命令免密登录:

    bash 复制代码
    sudo mysql

    或者使用其他具有相应权限的用户直接运行:

    bash 复制代码
    mysql -u root

2. 使用 .my.cnf 配置文件保存密码

另一种实现 MySQL 免密登录的方式是将密码存储在 MySQL 客户端的配置文件 .my.cnf 中。这样,MySQL 客户端在执行时会自动使用该文件中的凭据进行身份验证,而不需要手动输入密码。

步骤:
  1. 创建或编辑用户主目录下的 .my.cnf 文件

    bash 复制代码
    nano ~/.my.cnf
  2. 在文件中添加以下内容

    ini 复制代码
    [client]
    user=root
    password=你的密码
  3. 设置文件权限

    为了安全起见,限制该文件的读取权限,确保只有文件拥有者能访问:

    bash 复制代码
    chmod 600 ~/.my.cnf
  4. 免密登录

    现在,你可以直接运行 mysql 命令,而不需要输入密码:

    bash 复制代码
    mysql

注意事项:

  • auth_socket 插件 适用于 Linux 系统,通过系统用户身份实现免密,但不适用于远程登录。
  • .my.cnf 文件方式 更加通用,适用于本地或远程登录,但要注意 .my.cnf 文件的安全性,确保权限设置正确以防止密码泄露。

这两种方式都可以有效实现 MySQL 本地的免密登录,根据你的使用环境选择最合适的方案。

相关推荐
Java水解几秒前
MySQL索引分析以及相关面试题
后端·mysql·面试
yiSty10 分钟前
linux命令行下使用百度云网盘【自用】
linux·运维·百度云
超绝振刀怪18 分钟前
【Linux工具】环境基石:软件包管理器 yum 与 Vim 编辑器详解
linux·编辑器·vim
winfield8211 小时前
SELECT FOR UPDATE 是怎么使用的?
mysql
福尔摩斯张1 小时前
插件式架构:解耦与扩展的艺术与实践(超详细)
linux·服务器·网络·网络协议·tcp/ip
txzz88881 小时前
CentOS-Stream-10 搭建YUM源Web服务器
linux·运维·centos·yum源·linux系统更新·centos系统更新·自建web yum源
Molesidy1 小时前
【Linux】基于Imx6ull Pro开发板和platform_device+platform_driver框架的LED驱动设计以及上机测试
linux·驱动开发
我科绝伦(Huanhuan Zhou)1 小时前
Linux系统硬件时钟与系统时钟深度解析及同步实操指南
linux·运维·服务器
k***92162 小时前
【Linux】进程概念(六):地址空间核心机制
linux·运维·算法
李白同学2 小时前
Linux:调试器-gdb/cgdb使用
linux·服务器·c语言·c++