使用read-only,可以让整个mysqld实例处于只读的状态,但是要注意的是,对于拥有全部权限的超级用户来说,read-only是无法做限制的。因此对外,我们只能提供普通用户的权限。
read-only可以用于主从同步的从库上,可以很方便的实现从库的安全性。
设置的方法很简单,有两种
1)在my.cnf的[mysqld]下输入read-only,然后启动服务;
2)在线输入
mysql> set global read_only=‘on‘; Query OK, 0 rows affected (0.00 sec) mysql> show variables like ‘read_only‘; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | read_only | ON | +---------------+-------+ 1 row in set (0.00 sec)
需要注意的是,在配置文件中,参数的名字多使用横杠-,而在线输入的情况下,参数名字多使用下划线_;另外,在线输入时,这个参数是global参数,所以设置的方法是set global
从其他客户端连过来尝试修改数据,会提示MySQL服务器正在运行在只读状态。
[[email protected] ~]# mysql -uweb -pweb123 -h 192.168.5.41 -e "delete from mydb.student where name=‘webtest‘;" ERROR 1290 (HY000) at line 1: The MySQL server is running with the --read-only option so it cannot execute this statement
时间: 2024-11-03 21:02:22