存档

‘mysql’ 分类的存档

mysql truncate 时 waiting for meta data lock

2019年12月21日 没有评论

mysql truncate表时卡在执行不结束。通过show processlist发现语句处于waiting for meta data lock。原因是当InnoDB 表上面有其它session执行 SELECT 或 DML操作 (INSERT, UPDATE, DELETE)时,执行truncate的session就会卡住不执行。解决办法时杀掉执行其它操作的进程,或者等待其它session操作结束。mysql> show engine innodb status;mysql> KILL sessionid;

分类: mysql 标签:

mysql单表删除千万条记录

2019年11月21日 没有评论

当mysql表有大量数据要删除的时候,sql的执行时间会非常长,甚至会执行超时。比较好的办法有两种,用存储过程,一点点删除用中间表,通过导出表到新表,然后truncate原表,再重命名新表、原表的名字。存储过程伪过程drop procedure if exists huge_delete; delimiter // create procedure huge_delete() begin declare rows int; declare rows_deleted int; set rows = 1; set rows_deleted = 10000; while rows > 0 do delete from db.tabA where predicate_col < curdate() - interval 90 day order b...

分类: mysql 标签:

mysql的%和localhost用户

2019年11月13日 没有评论

mysql中的用户是用用户名和host来共同标识。User@% 和 User@localhost 是两个不同的用户,他们可以有相同的密码,一个用户的密码修改并不会影响另一个用户的密码。 User@% 允许从所有的ip访问. User@localhost 只允许从localhost访问。修改访问mysql的权限1.允许所有ip访问UPDATE mysql.user SET Host='%' WHERE Host='localhost' AND User='user'; FLUSH PRIVILEGES;这样修改完以后就不能用localhost访问。ERROR 1045 (28000): Access denied for user 'user'@'localhost' (using password: YES)解决...

分类: mysql 标签:

mysql忘记root密码修改办法

2019年2月7日 没有评论

[root@izj6c4danzl2zg703g6apoz default]# mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) [root@izj6c4danzl2zg703g6apoz default]# sudo /usr/local/mysql/support-files/mysql.server stop Shutting down MySQL. [ 确定 ] [root@izj6c4danzl2zg703g6apoz default]# cd /usr/local/mysql/bin [root@izj6c4danzl2zg703g6apoz bin]# sudo su [root@izj6c4danzl2zg703g6apoz bin]...

分类: mysql 标签:

mysql审计功能安装使用

2018年3月21日 1 条评论

mysql社区版没有审计功能,企业版有审计功能,但是需要付费。 社区版可以使用mcafee开发的审计功能插件libaudit_plugin.so,这个插件可以用在mysql 5.1以后的版本,使用时请下载对应的版本。 https://bintray.com/mcafee/mysql-audit-plugin/release#files 解压拷贝libaudit_plugin.so到mysql的插件目录: 查看MySQL的插件目录: > show variables like 'plugin_dir'; +---------------+------------------------------+ | Variable_name | Value | +---------------+---...

分类: mysql 标签: ,

一个关于分页的面试题

2015年5月1日 5 条评论

在网上看到面试中考分页的帖子,结合自己的想法,集合一下,欢迎讨论。 分页是各式各样系统开发过程中必不可少的环节,普通web应用数据量小、访问量小,分页可以用简单的方式来实现,一般是通过startrow+pagenum来实现,甚至可以提前生成静态页面,这样数据库基本没有压力,缺点是数据变动时要重新生成所有列表页,而且不能实时显示数据的变化。 不过还好的是对于大多数的应用能够实现需求即可,不必过多考虑优化。 互联网公司的海量数据,情况就变得不一样了,更多考虑的是性能和效率,加载速度提高一点点,就意味着用户体验的提升,...

分类: mysql, oracle 标签:

mysql-bin文件

2014年11月9日 没有评论

mysql的数据存放目录var下有很多文件 -rw-r----- 1 root root 296208 Nov 8 21:51 mysql-bin.000051 -rw-r----- 1 root root 92588461 Nov 8 21:51 mysql-bin.000050 -rw-r----- 1 root root 1331729 Nov 8 21:51 mysql-bin.000061 -rw-r----- 1 root root 4736 Nov 8 21:51 mysql-bin.000060 -rw-r----- 1 root root 5231 Nov 8 21:51 mysql-bin.000059 -rw-r----- 1 root root 125 Nov 8 21:51 mysql-bin.000058 -rw-r----- 1 root root 125 Nov 8 21:51 mysql-bin.000057 -rw-r----- 1 root roo...

分类: mysql 标签:

mysql多列索引和最左前缀

2014年4月12日 没有评论

数据库的索引可以加快查询速度,原因是索引使用特定的数据结构(B-Tree)对特定的列额外组织存放,加快存储引擎(索引是存储引擎实现)查找记录的速度。 索引优化是数据库优化的最重要手段。 如果查询语句使用索引(通常是where条件匹配索引)就会利用树的结构加快查找,索引会按值查找到要查找的行在表中位置,不需回表查询数据的就是聚簇索引(索引和数据存放在一起)。通常是需要回表再查数据,需要消耗额外的磁盘IO。所以有些时候(如按顺序读取数据)全表扫描会比使用索引快的原因就在于此。 查询条件只有一个字段时,在该字段建立索引即...

分类: mysql 标签: ,

使用另一个files的count结果update一个字段的值

2014年2月6日 没有评论

UPDATE typecho_metas tb1 set count = (SELECT COUNT(*) FROM typecho_relationships WHERE mid=tbl1.mid)

分类: mysql 标签:

linux编译安装mysql

2013年6月14日 10 条评论

紧接着上文,这次是重装mysql,正好之前有人要lnmp的安装方法,算上这篇文章就全了。 安装前准备 如果mysql用户不存在,那么添加mysql用户 groupadd mysql useradd -g mysql mysql 12 groupadd mysqluseradd -g mysql mysqlmysql编译安装 wget http://downloads.mysql.com/archives/mysql-5.1/mysql-5.1.70.tar.gz tar -zxvf mysql-5.1.70.tar.gz cd mysql-5.1.70yum install ncurses ncurses-...

分类: mysql 标签: ,