MySQL 免密登录的几种配置方式

打印 上一主题 下一主题

主题 1026|帖子 1026|积分 3078


MySQL 免密登录的几种配置方式

在一样平常运维中,为了简化登录操纵或进步主动化脚本实行的效率,我们经常须要配置 MySQL 免密登录。MySQL 支持通过多种方式实现免密登录,这样我们就可以制止每次输入密码。常见的三种免密登录配置方式是:


  • 利用操纵体系用户登录
  • 配置免密文件(通过 mysql_config_editor)
  • 通过 MySQL 用户授权配置免密登录
  • 通过设置client标签
本文将深入探究这三种方法,并详细介绍它们的实现步骤和适用场景。

利用操纵体系用户实现免密登录

MySQL 支持通过操纵体系用户来直接登录,无需输入密码。这种方式适用于服务器上的主动化任务或定时脚本实行,方便操纵。
具体步骤:

Step 1: 修改 MySQL 配置文件

找到 MySQL 的配置文件(通常位于 /etc/my.cnf 或 /etc/mysql/my.cnf),在 [mysqld] 部分添加如下配置:
  1. [mysqld]
  2. skip-grant-tables
复制代码
此配置项会让 MySQL 跳过权限表的校验,所有用户都无需密码即可登录。
Step 2: 重启 MySQL 服务

利用以下命令重启 MySQL 服务以使配置生效:
  1. systemctl restart mysqld
复制代码
Step 3: 利用体系用户登录 MySQL

此时可以直接利用体系用户(比方 root)登录 MySQL,而无需输入密码:
  1. mysql -u root
复制代码
留意
这种方式有肯定的安全隐患,因为它完全跳过了 MySQL 的权限体系,任何有权限访问 MySQL 服务器的用户都可以登录并操纵数据库。因此,这种方式应仅在调试或特别场景下利用,且必须确保服务器的安全性,比方通过防火墙和访问控制限制外部访问。
优点:



  • 简朴快捷,恰当暂时维护或本地调试。
缺点:



  • 安全性较低,所有用户都能绕过权限验证登录数据库。
这种也适用于忘记密码时候,配置后登岸服务器再修改密码,修改完再把配置注释即可

利用 mysql_config_editor 配置免密文件

MySQL 提供了一个非常安全的工具 mysql_config_editor,可以将登录信息加密存储在一个文件中,制止密码泄漏。这样每次登录时无需手动输入密码,同时又包管了密码的安全性。
具体步骤:

Step 1: 设置免密文件

利用 mysql_config_editor 命令创建一个免密配置文件:
  1. mysql_config_editor set --login-path=client --user=root --host=localhost --password
复制代码
在实行该命令后,会提示你输入密码。密码将被加密存储在 ~/.mylogin.cnf 文件中。此文件是用户级别的,其他用户无法访问。
Step 2: 利用免密文件登录 MySQL

配置完成后,可以通过以下命令直接登录 MySQL,而无需手动输入密码:
  1. mysql --login-path=client
复制代码
优点:



  • 安全性高:密码以加密形式存储,制止了明文泄漏的风险。
  • 易用性强:登录时无需每次输入密码,特别恰当主动化脚本或定时任务。
缺点:



  • 适用性有限:只适用于在本地或特定路径下配置了 mysql_config_editor 的用户,其他用户无法利用同一个免密文件。

MySQL 用户授权配置免密登录

MySQL 还可以通过直接修改用户权限的方式来实现免密登录。通过这种方式,你可以机动地为某个特定用户配置免密登录,同时保存其他用户的密码掩护。这在多人管理的环境中尤其适用。
具体步骤:

Step 1: 登录 MySQL

起首利用密码登录 MySQL:
  1. mysql -u root
  2. -p
复制代码
Step 2: 修改用户的认证方式

利用 ALTER USER 语句将某个用户配置为免密登录。比方,将 root 用户在 localhost 上登录时配置为免密码登录:
  1. ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
复制代码
这里的 BY '' 体现将密码设置为空。
Step 3: 刷新权限

实行以下命令使修改生效:
  1. FLUSH PRIVILEGES;
复制代码
Step 4: 免密码登录

现在,用户 root 在本地可以直接登录 MySQL 而无需输入密码:
  1. mysql -u root
复制代码
优点:



  • 机动控制:可以为指定用户和主机配置免密登录,而其他用户仍须要密码。
  • 适用于多用户环境:确保权限管理的机动性,同时提升部分用户的便捷性。
缺点:



  • 安全风险:免密码的用户如果配置不妥,大概导致安全隐患。因此,建议仅为信任的用户配置免密登录,且限制登录主机(如仅限本地登录 localhost)。

通过设置client标签

编辑/etc/my.cnf文件,添加如下代码
  1. [client]
  2. user=root
  3. password=123456
  4. port=3306
复制代码
配置完成后可以利用mysql命令直接登录数据库

缺点



  • 安全风险:此方式最大问题是明文存储密码,见配置文件各用户可见,非常的不安全。
~/.my.cnf

此种方式也是明文存储,配置方式同client标签一样,文件为隐藏文件,设置文件为改用户可读,与上边方式相比安全性有所进步。经验证测试,~/.my.cnf配置文件优先于/etc/my.cnf。
~/.my.cnf 代表当前用户的家目次下的 .my.cnf 配置文件,只对该用户生效。
  1. [root@sonar ~]# cat .my.cnf[client]
  2. user=root
  3. password=123456
  4. port=3306
  5. [root@sonar ~]# chmod .my.cnf
复制代码
配置完成后可以利用mysql命令直接登录数据库,这个只对root用户生效


几种种方式的对比与应用场景

方式优点缺点适用场景利用操纵体系用户免密登录操纵简朴,便于调试及主动化任务安全性低,所有用户都可绕过权限校验暂时调试、本地开发和短期主动化任务配置免密文件 mysql_config_editor安全性高,制止明文存储密码,主动化任务实行方便仅限配置了免密文件的用户利用长期服务器部署、主动化脚本、定时任务MySQL 用户授权配置免密登录机动控制指定用户,恰当多用户环境配置不妥存在安全风险生产环境中指定用户的免密登录,如数据库管理员的本地管理通过设置client标签操纵简朴,便于调试及主动化任务安全性低暂时调试、本地开发和短期主动化任务
总结

MySQL 免密登录在特定场景下可以极大进步操纵效率,淘汰繁琐的登录操纵。在选择合适的免密登录方式时,应根据实际需求和安全性思量:


  • 对于本地调试或短期维护任务,可以利用操纵体系用户免密登录,但应留意安全风险。
  • 对于生产环境中的主动化任务,利用 mysql_config_editor 配置免密文件是一个安全且方便的选择。
  • 如果是多人管理的环境,可以通过 MySQL 用户授权方式为特定用户配置免密登录,同时保存其他用户的密码掩护。
最终,公道的利用免密登录技术,不仅能进步工作效率,还能确保体系的安全性和稳定性。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

大号在练葵花宝典

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表