今天在将备份的csv文件导入mysql后,发现时间字段的值变为"0000-00-00 19:32:50",百度了下后,发现网上说要把时间字段改为varchar类型,导入数据后,再更改为datetime类型。因为目标表的数据很多,更改字段类型的话会很慢,而且是线上环境,所以就想着有没有其他的办法。后来又重新操作了一次导入,发现navicat在导入时有个日期分隔符的选项,这个选项默认为"/",
1.mysql原子性的保证是利用了undo log。undo log名为回滚日志,是实现原子性的关键,当事务回滚时能够撤销所有已经成功执行的sql语句,他需要记录你要回滚的相应日志信息。undo log记录了这些回滚需要的信息,当事务执行失败或调用了rollback,导致事务需要回滚,便可以利用undo log中的信息将数据回滚到修改之前的样子。 2.mysql原子性的保证是利用了re
今天上班后,忽然发现mysql从库的磁盘空间忽然爆满,经过一番查看后,发现ibtmp1占的空间很大,已经快300G了。经过查询得知, ibtmp1文件是 MySQL5.7的新特性,MySQL5.7使用了独立的临时表空间来存储临时表数据,但不能是压缩表。临时表空间在实例启动的时候进行创建,shutdown的时候进行删除。即为所有非压缩的innodb临时表提供一个独立的表空间,默认的临时
HeidiSQL,该工具可以方便地分析数据库中各表的大小,为迁移做准备。分析后,先迁移小表,再迁移大表等。
本文转载自https://juejin.im/post/5b55b842f265da0f9e589e79。 前言索引和锁在数据库中可以说是非常重要的知识点了,在面试中也会经常会被问到的。本文力求简单讲清每个知识点,希望大家看完能有所收获声明:如果没有说明具体的数据库和存储引擎,默认指的是MySQL中的InnoDB存储引擎一、索引在之前,我对索引有以下的认知:索引可以加快数据库的检索速度表经常进行I
先说明一下,在这里有一个前提,mysql开启了独立表空间,MySQL5.6.7之后默认开启。也就是在my.cnf中,有这么一条配置(这些是属于mysql优化的知识,后期给大家介绍)innodb_file_per_table = 1查看表空间状态,用下面的命令mysql> show variables like '%per_t
1、查看是否使用了指定目录的my.cnfps aux|grep mysql|grep 'my.cnf'如果上面的命令没有输出,表示没有设置使用指定目录的my.cnf。2、查看mysql默认读取my.cnf的目录mysql --help|grep 'my.cnf'这些就是mysql默认会搜寻my.cnf的目录,顺序排前的优先。3.如果没有设置使用指定目录my.cnf文
本文转载自http://tech.meituan.com/mysql-index.htmlMySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系统,读写比
详细参见https://blog.csdn.net/qq_32506555/article/details/54426440DBA或开发人员,有时会误删或者误更新数据,如果是线上环境并且影响较大,就需要能快速回滚。传统恢复方法是利用备份重搭实例,再应用去除错误sql后的binlog来恢复数据。此法费时费力,甚至需要停机维护,并不适合快速回滚。也有团队利用LVM快照来缩短恢复时间,但快照的缺点是会影
详细参见自https://blog.csdn.net/cangzihu/article/details/53488993
a.创建表,先创建一个和要操作表一样的表,然后更改存储引擎为目标引擎。复制代码代码如下:CREATETABLEmy_tmp_tableLIKEmy_table;ALTERTABLEmy_tmp_tableENGINE=InnoDB;b.插入。为了安全和速度,最好加上事务,并限制id(主键)范围。复制代码代码如下:INSERTINTOmy_tmp_tableSELECT*FROMmy_table;本
本文转载自链接:https://www.zhihu.com/question/20334428/answer/110981915使用mysqldump备份时一般会会加上--single-transaction参数,这里假设你是加了这个参数。一 加速备份1 加了single-transaction参数 备份时 需要先flush table with read lock 这个过程中会有一个锁表的过程,
1:二进制日志二进制日志记录了所有的DDL(数据定义语言)语句和DML(数据操作语言)语句,但是不记录包括数据查询的语句。语句以“事件”的形式保存,它描述了数据的更改过程,此日志对于灾难时的数据恢复起着极其重要的作用2:日志的位置和格式当用—log-bin[=file_name]选项启动时,mysqld将包含所有更新数据的SQL命令写入日志文件。如果没有给出file_name值,默认名为主机名后面
Xtrabackup是由percona开源的免费数据库热备份软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份(对MyISAM的备份同样需要加表锁)。与mysqldump备份方式相对比,mysqldump是逻辑备份,备份和恢复速度慢,但备份文件占用空间小。而Xtrabackup是物理备份,直接拷贝相关文件,备份还原快,备份文件占用空间大。&
配置文件路径:/full/path/mysql/bin/my.cnf(默认为/etc/my.cnf)[client]default-character-set=utf8[mysql]default-character-set=utf8[mysqld]init_connect='SETcollation_connection=utf8_unicode_ci'init_connect=
安装环境:CentOS6.8目的:通过通用二进制(GenericBinary)的方式安装MySQL5.6.16所需软件:mysql-5.6.16-linux-glibc2.5-x86_64.tar(请自行从MySQL官网下载)步骤:1.创建mysql用户,mysql组groupadd-g3306mysqluseradd-gmysql-u3306-s/sbin/nologin-Mmysqlidmys
操作环境:centos6.8有时由于服务器硬件资源紧张,而又需要新增mysql服务。这时我们可以采取在一台服务器上部署两个mysql实例,来解决。1、创建新的mysql实例数据存储目录:mkdir-p/data/mysql_33072、把my.cnf配置文件复制一份,开几个端口要复制几份。cp/etc/my.cnf/data/mysql_3307/my.cnf3、修改/data/mysql_330
测试环境莫名其妙有几条重要数据被删除了,由于在binlog里面只看到是公用账号删除的,无法查询是谁在哪个时间段登录的,就考虑怎么记录每一个MYSQL账号的登录信息,在MYSQL中,每个连接都会先执行init-connect,进行连接的初始化,我们可以在这里获取用户的登录名称和thread的ID值。然后配合binlog,就可以追踪到每个操作语句的操作时间,操作人以及客户端的连接进程信息等。实现审计。
mysql查看数据库和表的占用空间大小。。。。。。
MySQL主主复制结构区别于主从复制结构。在主主复制结构中,两台服务器的任何一台上面的数据库存发生了改变都会同步到另一台服务器上,这样两台服务器互为主从,并且都能向外提供服务。。。。。。
MySQL主从复制,默认是异步复制。异步复制,即master执行完事物并提交后,二进制日志记录完这些更新操作后,就又开始下一批事物。并不关心这些更新是否被复制到从上。.....
首先说下为什么需要mysql主从? 主要有三个原因:1,可以辅助备份,提高数据安全性;2,可以实现读写分离,达到负载分担的效果;3,可以实现高可用,在主服务器故障时,迅速切换到从,保证业务不间断运行。.....
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号