首页
学习
活动
专区
圈层
工具
发布

MySQL设置数据库为只读

前言: 默认情况下,我们的 MySQL 实例是可读写的。但有些情况下,我们可以将整个实例设置为只读状态,比如做迁移维护的时候或者将从库设为只读。本篇文章我们来看下 MySQL 设置只读相关知识。...read lock 也可将数据库设置为只读状态,那么二者有什么区别呢?...执行此命令会给数据库加全局读锁,使得数据库处于只读状态,以下语句会被阻塞:数据更新语句(增删改)、数据定义语句(建表、修改表结构等)和更新类事务的提交语句。...以个人数据库运维经验来讲,一般只有从库需要设置只读状态,从库端建议开启 read_only 或 super_read_only,避免人为写入。...总结: 本篇文章主要介绍了 MySQL 只读状态相关知识,其实除了从库外,其余实例很少设置全局只读,只是遇到某种需求的情况下需要将数据库设为只读状态,写本篇文章的目的也是遇到此类需求时,可以有个参考。

10.7K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Mysql数据库设置主从同步

    服务器配置: vim /etc/my.cnf #先看下原来的配置有没以下设置,有的话修改下就行了[mysqld]server-id=120log-bin=/var/lib/mysql/mysql-bin...GRANT OPTION; #更新数据库权限mysql>flush privileges; 锁定所有表(防止数据库状态值变化,锁定后,这时候只能读,不能写,写请求会在解锁后执行) mysql>  FLUSH...# 启用二进制日志binlog-do-db=sakzss #指定数据库,如果不指定就是全部数据库 重启服务器: service mysqld restart # centos6重启mysql 设置同步源...mysql数据库同步验证 主从数据库设置工作已经完成,可以在master新建数据库和表,插入和修改数据,查看slave是否获得同步,测试一下是否成功。...一般不成功有以下几个原因: 1.server-id 设置了一样,默认都是1,要设置不一样 2.主数据库防火墙没设置允许远程访问3306端口 3.没锁表再记录MASTER_LOG_FILE、MASTER_LOG_POS

    14K00

    MySQL 数据库设置远程权限

    设置访问单个数据库权限 设置用户名为 root,密码为空,可以访问数据库 test mysql>grant all privileges on test.* to 'root'@'%'; 设置访问全部数据库权限...设置用户名为 root,密码为空,可以访问所有数据库 mysql>grant all privileges on *.* to 'root'@'%'; 设置指定用户名访问权限 指定用户名为 liuhui...,密码为空,可以访问所有数据库 mysql>grant all privileges on *.* to 'liuhui'@'%'; 设置密码访问权限 设置用户名为 liuhui,密码为 liuhui,...可以访问所有数据库 mysql>grant all privileges on *.* to 'liuhui'@'%' IDENTIFIED BY 'liuhui'; 设置指定可访问主机权限 设置用户名为...liuhui,密码为 liuhui,可以访问所有数据库,只有 10.1.1.1 这台机器有权限访问 mysql>grant all privileges on *.* to 'liuhui'@'10.1.1.1

    10.6K20

    如何在宝塔面板里设置脚本定时恢复数据库

    宝塔支持shell脚本,在后台很显眼的地方就能找到,但对于定时恢复数据库的脚本,网上的信息里没有比较靠谱的。因为linux在脚本执行的安全方面比较严格,所以要实现这个需要,比其他脚本要稍微麻烦一点。...mysql --defaults-extra-file=/www/backup/database.password emlog < cs.sql         这是一个名为emlog的数据库,然后数据库密码放在一个文件名为...database.password的文件里,你只需要以以下形式放进去就行: [client] user=abc password=123456789         user=你的数据库账号 password...,然后你就放在你宝塔程序的目录(我放的是/www/server/panel/cs.sql)         再说一下那个脚本的格式,就是这样: mysql --defaults-extra-file=你的密码文本形式的一个文件...>设置执行周期------>设置脚本,就是上面那个------>确定密码文件和数据库备份文件到位----->点击添加脚本----->完成!

    1.5K20

    MySQL 普通索引 vs 唯一索引:不只是“能不能重复”这么简单

    : 数据完全合法 是否重复不在其职责范围内 这意味着: 唯一性完全依赖应用逻辑 并发下极易写穿 从 DBA 视角看,这类表的风险是: **数据错误不是“偶发 Bug”,而是“结构性必然”**。...NULL 的语义 在 MySQL 中: UNIQUE 允许多个 NULL 因为 NULL ≠ NULL 这在 DBA 设计阶段非常关键: 如果业务语义是“必须有值且唯一” 必须:UNIQUE...必须使用 UNIQUE 的字段 订单号 / 交易号 账户号 / 绑定关系 业务唯一标识 凡是“不能错”的数据,一定要数据库兜底。 2....适合普通索引的字段 状态 时间 枚举类型 维度字段 这些字段: 允许重复 不承载业务规则 七、汇总结论 UNIQUE 是数据规则,不是性能工具 INDEX 只负责快,不负责对 不要把数据一致性押在应用代码上...不要重复建索引 PRIMARY KEY、UNIQUE、INDEX 各司其职 一个成熟系统的数据正确性,应该“写死在表结构里”,而不是“祈祷代码不出错”。

    59310

    设置MySQL数据库不区分大小写

    这个时候怎么办呢,显然改程序是不行的,时间上也不允许,所以只能设置MySQL数据库不区分大小写了,大家看以下步骤: 1、查询MySQL是否设置了区分大小写 show variables like "%case...然后重启MySQL环境即可。...二 其他环境下 如果上面设置的不行,可以试试以下路径: echo "lower_case_table_names=1" >> /etc/mysql/mysql.conf.d/mysqld.cnf 即寻找...更改设置之后的效果: ? 已经不区分大小写了: ?...拓展知识 MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的: 1、数据库名与表名是严格区分大小写的; 2、表的别名是严格区分大小写的; 3、列名与列的别名在所有的情况下均是忽略大小写的

    20.2K21

    wordpress远程连接mysql数据库方法及设置

    其实wordpress远程连接mysql数据库的方法很简单,不过前提是必须开启服务器的远程mysql的远程访问(在你需要做远程数据库的服务器上设置),然后再修改一下WordPress里面的wp-config.php...那么你可以在CP面板那里找到远程MySQL菜单,进入后把你允许远程连接的IP地址添加上(即本地网站IP地址),然后返回新建数据库和用户账号,把用户账号添加进数据库,设置账号权限即完成mysql远程登录的开启...不过建议不要把那么重要的root给设置成所有主机都可以登录吧. 2、授权法 说白了,这个方法就是新建一个用户,然后给这个用户授权,具体操作如下.首先当然需要用root登录mysql数据库. mysql>...的本地设置,打开wp-config.php文件,修改里面的有关MySql的连接字段值: /** WordPress 数据库的名称 */ define(‘DB_NAME’, ‘你的远程数据库的名称’);...Mysql数据库了。

    8.7K20

    重新学习MySQL数据库10:MySQL里的那些日志们

    重新学习MySQL数据库10:MySQL里的那些日志们 同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分。...SQL语句信息,例如更改数据库表和更改内容的SQL语句都会记录到binlog里,但是对库表等内容的查询不会记录。...2.binlog的作用 当有数据写入到数据库时,还会同时把更新的SQL语句写入到对应的binlog文件里,这个文件就是上文说的binlog文件。...1、什么是binlog binlog是一个二进制格式的文件,用于记录用户对数据库更新的SQL语句信息,例如更改数据库表和更改内容的SQL语句都会记录到binlog里,但是对库表等内容的查询不会记录。...2.binlog的作用 当有数据写入到数据库时,还会同时把更新的SQL语句写入到对应的binlog文件里,这个文件就是上文说的binlog文件。

    2.1K40

    【数据库原里与运用|MySQL】MySQL各类索引的创建及使用

    索引的特点 索引的优点 索引的缺点 四、总结 前言         总所周知,数据库查询是数据库的最主要功能之一。...基本操作 查看索引 -- 1、查看数据库所有索引 select * from mysql.innodb_index_stats a where a.database_name = '数据库名’;...-- 2、查看表中所有索引 select * from mysql.innodb_index_stats a where a.database_name = '数据库名' and a.table_name...中基本索引类型,没有什么限制,允许在定义索引的列中插入重复值和空值,纯粹为了查询数据更快一点。...重复数据多的字段不应设为索引(比如性别,只有男和女,一般来说:重复的数据超过百分之15就不该建索引) 首先应该考虑对where 和 order by 涉及的列上建立索引

    2K20

    MySQL查看数据库表中的重复记录并删除

    user where username in (select username from user group by username HAVING count(*) >1); 查看用户名和手机号都相同的重复记录...username,phone from user group by username,phone HAVING count(*) >1); 注意:where条件中(username,phone)的括号不能少不然会报错...删除用户名和手机号都相同的重复记录 DELETE from user where (username,phone) -- 注意:此处一定要加括号,当成联合字段来处理 IN ( --...实际执行会报如下错误: 1093 - You can’t specify target table ‘user’ for update in FROM clause 含义:不能在同一表中查询的数据作为同一表的更新数据...ROW_FORMAT=DYNAMIC COMMENT='用户表'; INSERT INTO `user`(`id`, `username`, `phone`, `age`) VALUES (1, '我是主数据库的

    15.3K30

    万里数据库受MySQL制裁或断供

    万里数据库受MySQL制裁或断供,开源的也能断供?华为的基于pg,阿里的基于mysql,tidb底层存储基于rocksdb,国内一般要么是基于pg要么是基于mysql。 没想到mysql也叛变了?...mysql的开源协议对个人用户是免费的,但企业拿mysql源码做修改或者干脆不做修改,而拿来进行商业销售或者转售,就需要花钱向mysql买商业授权。 人家可以卖给你,当然也可以不卖给你,这就叫断供。...而腾讯的tdsql基于mysql,是需要花钱买商业授权的。...创意信息5月27日在互动平台表示,万里数据库不会受MySQL制裁或断供影响,原因如下: 1.万里数据库核心部分为自主研发,存储节点基于GreatSQL开源技术; 2.GreatSQL开源项目虽属MySQL...分支,但核心技术不受MySQL主干技术影响,属独立技术演进分支; 3.GreatSQL社区核心由万里数据库主导,不受国外厂商、组织影响。

    1.6K50

    MySQL数据库文件的移动和权限设置

    新型数据库层出不穷,MySQL一幅日薄西山的样子。其实还有很多人或者偏爱、或者使用以前遗留的系统,仍然生活在MySQL的世界。 我也是有很久不用了,这个很久超过十年。...因为是个用了很久的系统,所以不考虑变更数据库系统了。只是把当前数据库迁移到新的设备上,这应当是很简单的事情。按理说,数据文件大点,拷贝要时间,也超不过20分钟搞定,接下来小酒、撸串才是正理。...,免得拷贝完成再设置权限 # cp -Ra mysql /media/data/ // 老文件先不删除,保留备份防止意外 # mv mysql mysql-bak // 偷个懒,直接建一个链接,免得要修改...mysql启动脚本和设置文件 # ln -s /media/data/mysql/ . # service mysql start 回车键按下,系统提示: start: Job failed to start...* rwk, // 改的时候根据你的数据路径,调整上面4行的设置 // 此外考虑到/var/lib/mysql这个路径也可能会有测试需要,所以原始的4行保留,额外增加4行也可,不差那一点点运算 //

    10.2K20

    数据库中设置列字段自增(Oracle和Mysql)

    oracle 1、创建一个序列,然后在需要自增的字段里使用它 drop sequence seq_stu create sequence seq_stu start with 22 Increment...seq_stu.nextval) 如何重置数据表中自增 1、删除该序列,再重新创建该序列即可 2、 truncate table 表名; 注意:截断表,即删除所有数据,只保留表结构 Mysql...创建表时直接制定自增列/字段 1、通过点击点击相关表选择“设计表”进行设置 ?...2、在建表语句中直接设置(通过auto_increment关键字设置) create table emp( emp_id int primary key auto_increment, emp_name...auto_increment = 1000; --auto_increment = 1000作用是从字段数字从1000开始 如何重置数据表中自增 TRUNCATE TABLE 表名; 注意:会删除表中的数据,只有在MySQL

    9.7K20

    MySQL数据库远程连接、创建新用户、设置权限

    2、为用户授权 a.授权格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by '密码';  b.登录MYSQL,这里以ROOT身份登录: mysql -u root...databases;查看数据库: ?...3、删除用户 mysql -u root -p Delete FROM mysql.user Where User=”test” and Host=”localhost”; flush privileges...因为是直接使用 SQL 语句的方式来删除账户,所以必须先选择 mysql 自身的数据库: use mysql; 好了,现在用ssh账户登陆,开始建表!...各单位战斗人员请注意,这个时候需要用命令查看数据库所用端口,这个很重要哦,远程连接数据库时候需要的!而且前面咱们授权ssh账户远程登录时,一定要有成功授权提示哦!

    11K41
    领券