限制MYSQL从服务器为只读状态(centos 6.6)

系统:centos 6.6

mysql版本:5.1.73

在MySQL数据库中,在进行数据迁移和从库只读状态设置时,都会涉及到只读状态和Master-slave的设置和关系。

将MySQL设置为只读状态的命令:

方法一:修改后需要重启mysql服务。

方法二:

# mysql -uroot -p
mysql> show global variables like "%read_only%";
mysql> flush tables with read lock;
mysql> set global read_only=1;
mysql> show global variables like "%read_only%";将MySQL从只读设置为读写状态的命令:

mysql> unlock tables;
mysql> set global read_only=0;
对于需要保证master-slave主从同步的salve库,如果要设置为只读状态,需要执行的命令为:
mysql> set global read_only=1;
     将salve库从只读状态变为读写状态,需要执行的命令是:
mysql> set global read_only=0;

另外可以修改配置文件:

到主服务器(192.168.26.210)上创建访问用户及密码:(注意在这里我们主从同步已经配置完成)

使用命令: grant all on baidu.* to ‘testuser‘@‘192.168.%.%‘ identified by ‘testpasss‘;

查看从服务器(192.168.26.211)上是否同步用户信息。

已经同步用户信息。

使用新创建用户密码登陆到从服务器192.168.26.211,测试操作。

mysql -utestuser -p -h192.168.26.211

只能进行查询相关操作,无法进行写入操作。

再进行 set global read_only=0;

从服务器插入数据成功。

注意此设置只对普通用户操作有效:对于特殊权限用户无效比如root和同步账号.

对于数据库读写状态,主要靠 “read_only”全局参数来设定;默认情况下,数据库是用于读写操作的,所以read_only参数也是0或faluse状态,这时候不论是本地用户还是远程访问数据库的用户,都可以进行读写操作;如需设置为只读状态,将该read_only参数设置为1或TRUE状态,但设置 read_only=1 状态有两个需要注意的地方:
      1.read_only=1只读模式,不会影响slave同步复制的功能,所以在MySQL slave库中设定了read_only=1后,通过 show slave status\G 命令查看salve状态,可以看到salve仍然会读取master上的日志,并且在slave库中应用日志,保证主从数据库同步一致;
      2.read_only=1只读模式,可以限定普通用户进行数据修改的操作,但不会限定具有super权限的用户的数据修改操作;在MySQL中设置read_only=1后,普通的应用用户进行insert、update、delete等会产生数据变化的DML操作时,都会报出数据库处于只读模式不能发生数据变化的错误,但具有super权限的用户,例如在本地或远程通过root用户登录到数据库,还是可以进行数据变化的DML操作;

时间: 2024-10-08 23:58:47

限制MYSQL从服务器为只读状态(centos 6.6)的相关文章

限制MYSQL从服务器为只读状态

修改全局变量的方法有两种,第一种是修改配置文件,第二种是SQL语句设置全局变量的值.(可以参考:http://www.cnblogs.com/qlqwjy/p/8046592.html) 0.简介: 对于数据库读写状态,主要靠 “read_only”全局参数来设定:默认情况下,数据库是用于读写操作的,所以read_only参数也是0或faluse状态,这时候不论是本地用户还是远程访问数据库的用户,都可以进行读写操作:如需设置为只读状态,将该read_only参数设置为1或TRUE状态,但设置 r

(图解)windows下的mysql客户端mysqlworkbench 链接虚拟机上CentOS的mysql服务器

本人在虚拟机上CentOS的Linux环境下安装了mysql服务器,在本地Windows下安装了mysql的客户端mysqlworkbench ,所以就想让windows下的mysql客户端mysqlworkbench 链接虚拟机上CentOS的mysql服务器,整个过程记录如下: 一.安装客户端Mysql WorkBench 1.下载安装包:mysql-workbench-community-6.2.5-winx64.msi 下载路径:http://dev.mysql.com/download

从已运行的mysql主服务器中复制一个从节点

环境: 192.168.205.17: as master server 192.168.205.27: as slave server 版本: OS: centos 7 1810 with mini install mariadb-5.5.60 目地: 当数据库运行了一段时间后,如何再做主从复制. 步骤: 1. 配置主服务器 2. 备份主服务器 3. 配置主恢复从服务器 4. 测试  主服务器192.168.205.17 首先安装MariaDB [[email protected] ~]#yu

2-18,19 搭建MySQL主从服务器并并通过mysql-proxy实现读写分离

MySQL主从服务器 实现方式: MySQL  REPLICATION Replication可以实现将数据从一台数据库服务器(master)复制到一台或多台数据库服务器(slave) 默认情况下这种情况属于异步复制,无需维持长连接 通过配置,可以复制所有库或者几个库,甚至库中的一些表 它是MySQL内建的,自带 Replication的原理 主服务器master将数据库的改变写入二进制日志文件,从服务器slave同步这些二进制日志,并生成中继日志,从服务器根据中继日志,执行这些改变 DML:S

MySQL数据库服务器 主从配置

A B 为两台 MySQL 服务器,均开启二进制日志,数据库版本 MySQL 5.5 一.服务器参数 [A 服务器 192.168.1.100] server-id = 1 binlog-do-db = test binlog-ignore-db = mysql replicate-do-db = test replicate-ignore-db = mysql sync-binlog = 1 [B 服务器 192.168.1.101] server-id = 2 binlog-do-db =

搭建mysql主从服务器

搭建mysql主从服务器: //注:注释掉my.cn文件中的skip-federated字段[[email protected] ]# /bin/cp -r /usr/local/mysql/share/mysql/my-huge.cnf  /etc/my.cnf 配置主服务器:修改my.cnf文件server-id=1 //每个数据库服务器都要指定唯一一个server-id log-bin=mysql-bin //mysql进行主从复制时通过二进制日志文件来进行的,所以必须开启mysql日志功

MySql状态查看方法 MySql如何查看连接数和状态?

如果是root帐号,你能看到所有用户的当前连接.如果是其它普通帐号,只能看到自己占用的连接 怎么进入mysql命令行呢? mysql的安装目录下面有个bin目录,先用命令行进入该目录,然后用 mysql -uroot -p123456 来登录(注意:用户名和密码不用包含“”) 命令: show processlist; 如果是root帐号,你能看到所有用户的当前连接.如果是其它普通帐号,只能看到自己占用的连接. show processlist;只列出前100条,如果想全列出请使用show fu

如何监控MYSQL消耗服务器资源

http://258xiaolei-sina-com.iteye.com/blog/764665 启动Mysql时加参数--log-slow-queries来记录执行时间超过long_query_time秒的sql MySQL 自带 slow log 的分析工具 mysqldumpslow. slow log 是 MySQL 根据 SQL 语句的执行时间设定,写入的一个文件,用于分析执行较慢的语句. 只要在 my.cnf 文件中配置好: log-slow-queries = [slow_quer

Cacti监控mysql数据库服务器实现过程

Cacti监控mysql数据库服务器实现过程 2014-05-29      0个评论    来源:Cacti监控mysql数据库服务器实现过程   收藏    我要投稿 1 先在cacti服务器端安装mysql模板 wget https://mysql-cacti-templates.googlecode.com/files/better-cacti-templates-1.1.8.tar.gz tar –xvf better-cacti-templates-1.1.8.tar.gz cd b