启用 read_only 和 super_read_only 参数并创建只读账户,可确保 MySQL 镜像实例处于安全只读状态,适用于从库或数据分析场景。

MySQL 镜像配置只读模式,通常用于主从复制架构中的从库(Slave),防止数据被意外修改。设置方式包括启用数据库实例的只读模式以及创建只读账户,两者结合使用更安全。下面详细介绍如何在 MySQL 镜像中配置全局只读模式和只读用户。
启用 MySQL 全局只读模式
在从库上启用 read_only 可防止普通用户执行写操作。只有拥有 SUPER 或 SYSTEM_VARIABLES_ADMIN 权限的用户才能绕过该限制。
通过 SQL 命令开启只读模式:
SET GLOBAL read_only = ON;
若需持久化设置,避免重启后失效,应在 MySQL 配置文件中添加:
[mysqld]read_only = 1
对于 Docker 部署的 MySQL 镜像,可在启动容器时挂载自定义配置文件,或通过环境变量方式注入配置。
配置 super_read_only(增强安全性)
即使设置了 read_only,拥有 SUPER 权限的用户仍可写入。为彻底禁止写操作,建议同时启用:
SET GLOBAL super_read_only = ON;该设置会阻止 SUPER 用户执行写操作,进一步提升从库安全性。同样可写入配置文件永久生效:
[mysqld]read_only = 1super_read_only = 1创建只读数据库账户
除了实例级只读,还应为应用创建权限受限的只读账号,遵循最小权限原则。
创建一个只能查询的用户示例:
CREATE USER 'readonly'@'%' IDENTIFIED BY 'your_password';GRANT SELECT ON your_database.* TO 'readonly'@'%';FLUSH PRIVILEGES;如需限制连接来源,可将 '%' 替换为具体 IP 或内网网段。避免授予 INSERT、UPDATE、DELETE、DROP 等写权限。
Docker 环境下的配置方法
若使用官方 MySQL 镜像部署,可通过挂载配置文件实现开机自动启用只读:
创建配置文件
my.cnf:[mysqld]read_only = 1super_read_only = 1启动容器时挂载配置:
docker run -d \ --name mysql-slave \ -v /path/to/my.cnf:/etc/mysql/conf.d/readonly.cnf \ -e MYSQL_ROOT_PASSWORD=secret \ mysql:8.0配置文件放在
/etc/mysql/conf.d/目录下会自动加载。基本上就这些。通过开启 read_only 和 super_read_only 参数,并配合只读账户,能有效保障 MySQL 镜像实例处于安全的只读状态,特别适用于从库或数据分析场景。
以上就是mysql镜像配置如何设置只读模式_mysql镜像配置只读账户与模式设置方法的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1070059.html赞 (0)打赏微信扫一扫
支付宝扫一扫
微信扫一扫
支付宝扫一扫