MariaDB执行ALTER DATABASE语句遇READ ONLY语法错误求助
MariaDB设置数据库只读语法错误的解决方法
你用的
ALTER DATABASE testDB READ ONLY = 1;是MySQL 8.0+的专属语法,MariaDB不支持这种空格分隔的READ ONLY写法,必须使用下划线连接的READ_ONLY关键字。适配MariaDB的正确语句:
ALTER DATABASE testDB READ_ONLY = 1;若你的MariaDB版本低于10.5.1,
ALTER DATABASE不支持直接设置READ_ONLY,可以用以下两种替代方案:- 设置全局只读(影响所有数据库,需超级权限):
要是想禁止超级用户的写操作,可改用:SET GLOBAL read_only = 1;SET GLOBAL super_read_only = 1; - 针对
testDB单独回收写权限(精准控制单个数据库):REVOKE INSERT, UPDATE, DELETE ON testDB.* FROM '你的用户名'@'你的主机地址';
- 设置全局只读(影响所有数据库,需超级权限):
提示:设置全局变量后,重启MariaDB会失效,若要永久生效,需在配置文件(如
my.cnf)中添加read_only=1或super_read_only=1。
内容的提问来源于stack exchange,提问作者polandonion
相关产品推荐
相关产品推荐

