![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Mysql
文章平均质量分 67
loophome
这个作者很懒,什么都没留下…
展开
-
mysql重置root密码
1)修改my.cnf配置,找到[mysqld]添加skip-grant-tables,重启mysql即可。注意此时登陆mysql均不需要任何账户验证,注意访问环境。2)重置密码flush privileges;set password for root@localhost=password('你的密码');3)移除my.cnf中的skip-grant-tables,重启mysql...原创 2021-05-20 22:26:40 · 125 阅读 · 0 评论 -
SQL error: SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value问题解决
SQL error: SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value针对如下SQL:'0000-00-00 00:00:00' for column 'begin_time' at row 1 begin_time的类型为TIMESTAMP解决方案:1)根本解决:修改逻辑,'000...原创 2019-11-28 11:37:35 · 23517 阅读 · 0 评论 -
INSERT ... ON DUPLICATE KEY UPDATE导致数据库主键不连续问题
业务中发现某个表的主键ID不连续,而且这个业务并没有删除操作,难道被黑了?后来检查了代码,发现使用了INSERT ... ON DUPLICATE KEY UPDATE,发现了问题所在。原因在于,当使用INSERT ... ON DUPLICATE KEY UPDATE时,无论是执行INSERT操作,还是UPDATE操作,都会导致auto increment自增1测试实验1)建立...原创 2019-10-25 10:52:27 · 804 阅读 · 0 评论 -
Mysql索引合并(index merge)导致的死锁问题
在mysql5.0之前,一个表仅仅能使用一个索引,从5.1开始,引入了 index merge 优化技术,对同一个表可以使用多个索引分别进行条件扫描。可以使用explain来查看index mergeUsing intersect(idx_brand_id,idx_i_sort_id);以上查询,使用了2个索引。大家也知道,mysql innodb引擎使用索引来实现行级别的锁,以下描...原创 2018-09-13 16:23:27 · 1768 阅读 · 0 评论 -
MYSQL遇到Deadlock found when trying to get lock,解决方案
最近遇到一个MYSQL update语句出现Deadlock found when trying to get lock的问题,分析一下原因。什么情况下会出现Deadlock found when trying to get lock?https://dev.mysql.com/doc/refman/5.6/en/innodb-deadlocks.html出现死锁需要2个条件:1)至少2个clie...原创 2018-04-09 15:24:38 · 138648 阅读 · 8 评论 -
MYSQL:int类型升级到bigint,对PHP开发语言影响
因为业务增长,原有的unsigned int已经不够使用,需要升级到unsigned bigintMYSQL整数支持的范围:https://dev.mysql.com/doc/refman/5.7/en/integer-types.htmlTypeStorageMinimum ValueMaximum Value原创 2018-01-26 21:30:59 · 8649 阅读 · 0 评论 -
Mysql5.7版本单机版my.cnf配置文件
配置路径/etc/my.cnf以下内容参考自阿里云(https://yq.aliyun.com/ziliao/146460)[client]port = 3306socket = /usr/local/mysql/logs/mysql.sockdefault-character-set=utf8[mysqld]port = 3306s原创 2017-10-12 23:27:39 · 2304 阅读 · 0 评论 -
MySQL: Host '127.0.0.1' is not allowed to connect to this MySQL server
MySQL连接数据库出现错误:Host '127.0.0.1' is not allowed to connect to this MySQL server实际访问数据库配置:jdbc.url=jdbc:mysql://localhost:3306/*****实际数据设置为只允许localhost访问,经检查发现是MySQL配置文件(/etc/my.cnf)中设置了skip-name-re转载 2017-10-11 16:44:01 · 5955 阅读 · 0 评论 -
Mysql,sql文件导入和导出
sql文件导入在mysql命令行中导入1)连接到mysql终端,在终端中执行命令source [sql文件路径] PS:在Windows路径不要用\,因为反斜杠也是一个命令!!sql的文件路径,无需要使用引号使用外部命令导入1)使用mysql导入 mysql -u[用户名] -p [数据库名] [表名] sql文件导出在mysql命令原创 2015-03-19 19:13:48 · 888 阅读 · 0 评论 -
MYSQL之union和order by分析([Err] 1221 - Incorrect usage of UNION and ORDER BY)
我在一个业务中采用了按月的分表策略,当查询的条件跨月的时候,使用了union all汇总2个表的数据,并按插入时间倒序排列。查询并不复杂,但是当执行的时候却报错了。SELECT * FROM `table_201604` ORDER BY `REPORT_TIME` DESCUNION ALLSELECT * FROM `table_201605` ORDER BY `REPORT_T原创 2016-05-04 09:44:17 · 27383 阅读 · 9 评论 -
mysql查询超时对PHP执行的影响
最近遇到一个问题,就是在高并发下,mysql性能出现了瓶颈,由于PHP是一种弱类型的语言,没有类型一说。因此,当mysql返回并非预期结果时,会导致后续逻辑错误。1)线程阻塞测试当sql语句执行太慢,会导致mysql的连接数被耗尽,无法处理新的请求。测试方法执行set global max_connections=1;语句,并在另一个程序中开启长连接占用该连接,此时,mysql服原创 2015-05-14 15:37:17 · 1056 阅读 · 0 评论 -
mysql状态分析之show global status
公司的nagios监控服务器长期对内网用MySQL数据库发出ctritical报警,因为我将其他同事的手机短信报警也开通了,搞得整个系统组的同事都怨声载道(呵呵)这时候就需要根据其status对其Mysql数据库进行优化了,这时候可以等MySQL服务器稳定运行了一段时间后运行,根据服务器的“状态”进行优化。mysql> show global status;可以列出MySQL服务器运行各种转载 2015-06-18 16:55:55 · 8797 阅读 · 0 评论 -
MYSQL数据库简单的状态检查(show status)
show processlist可以检查mysql当前sql语句的执行情况,而show status就可以检查mysql当前的状态命令:show status(PS:可以通过like来过滤一些不必要的信息)这个命令返回的信息相当之多,一共返回了291行信息(不用版本可能会有所差异哈),我选择了几个比较重点的来进行分析。1.慢查询mysql> show status like原创 2015-04-27 20:24:51 · 4007 阅读 · 0 评论 -
MYSQL数据库简单的状态检查(show processlist)
专业的DBA可以通过一些专业的mysql分析工具来检查mysql的状态,身为非专业人员的开发人员,也可以通过一些简单的命令来分析mysql。命令:show processlist*************************** 1. row *************************** Id: 5268 User: root Host: loca原创 2015-04-27 19:35:31 · 1293 阅读 · 0 评论 -
MYSQL之REPLACE INTO和INSERT … ON DUPLICATE KEY UPDATE用法
REPLACE INTO的用法与INSERT很相似,最终在表中的目的是插入一行新的数据。不同的是,当插入时出现主键或者唯一索引冲突的时候,会删除原有记录,重新插入新的记录。因此,除非表具有主键或者唯一索引,否则使用REPLACE INTO无任何意义。以下新建了一个表来进行测试,并添加触发检视REPLACE INTO是如何工作的:CREATE TABLE `replace_into` (原创 2015-04-20 11:13:44 · 1674 阅读 · 0 评论 -
innodb锁级别分析(二)
1.获取InnoDB行锁争用情况 可以通过检查InnoDB_row_lock状态变量来分析系统上的行锁的争夺情况:mysql> show status like 'innodb_row_lock%'\G;*************************** 1. row ***************************Variable_name: Innodb原创 2015-04-01 21:30:25 · 608 阅读 · 0 评论 -
innodb锁级别分析(一)
InnoDB与MyISAM的最大不同有两点:一是支持事务(TRANSACTION);二是采用了行级锁。行级锁与表级锁本来就有许多不同之处,另外,事务的引入也带来了一些新问题。1.事务(Transaction)及其ACID属性事务是由一组SQL语句组成的逻辑处理单元,事务具有以下4个属性,通常简称为事务的ACID属性。 原子性(Atomicity):事务是一个原子操作单原创 2015-04-01 21:04:54 · 828 阅读 · 0 评论 -
Mysql账号权限查询(grants)
如何查看MYSQL当前用户的权限?有2个方法使用show grants for 命令这个命令,使用非常简单,而且能查询出创建该用户的SQL语句。命令如下:show grants for [account];或者show grants for [account]@'127.0.0.1';输出结果为:GRANT SELECT, INSERT, UPDATE, DELET原创 2015-03-27 10:20:08 · 1580 阅读 · 0 评论