当我们通过非正常手段对服务器进行关闭,重启后发现MySQL竟然启动不了,这一般是强制关机导致MySQL二进制日志损坏了,大致报错如下:
**SQLSTATE[HY000] [2002] No such file or directory**
我们可使用以下命令处理(建议关机或重启时最好先停止mysqld服务,否则有一定机率导致数据库损坏。):
###...
为什么祖传代码被称为「屎山」?
今天偶然看到一篇文章,作为"程序猿",对于屎山,我真的是深有感悟,所以马上就想着分享给大家并加了些自己的观点。
驾驭屎山的唯一方法,不是重构,而是不重构。
为什么有人可以在屎山里加功能?
很简单:把屎山扒拉开,每块闻一闻,找出和你要改的功能对应的那坨屎,把这坨屎包起来(封装),你就可以假装它不是屎,是巧克力。然后,在旁边...
MySQL8中修改默认的排序规则为utf8mb4_general_ci
MySQL8中,默认排序规则从utf8mb4_general_ci修改为了utf8mb4_0900_ai_ci,造成某些特殊字符插入不进去,这里把MySQL的默认排序规则重新修改回utf8mb4_general_ci
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
...
MySQL建表时使用utf8出现警告的解决方法
MySQL执行建表语句会出现警告 Warning: 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in or...
MySQL Warning: Integer display width is deprecated and will be removed in a future release.
MySQL执行语句出现警告 Warning: Integer display width is deprecated and will be removed in a future release.
原因:参考MySQL8的官方文档:https://dev.mysql.com/doc/refman/8.0/en/numeric-type-synt...
Mysql中使用datetime类型默认值报错的问题
在使用MySQL时,当建表语句包含如下语句时:
create_time DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'
可能抛出如下异常:
Invalid default value for 'create_time'
为什么会出现这个呢?原因是 SQL_MODE 没设置好,解决方案如下...
MySQL使用UUID生成唯一值
日常开发中,会需要生成唯一ID的场景,根本不需要想的太复杂,简单一个MYSQL自带函数帮你搞定
使用方法如下:
SELECT UUID() AS UUID
配合replace函数去除横杠:
默认生成的uuid含有'-',我们可以使用replace函数替换掉'-'。
SELE...
MySQL自增主键重置排序
对于自身有强迫症的人来说,如果看到ID的排序乱了,或者是断层了,那是非常难受的事情;
Mysql数据库表的自增主键ID号经过一段时间的添加与删除之后乱了,需要重新排列,简单三步实现(可指定初始数字)。
[blue]任何操作前都请先备份数据库,养成良好习惯,从你我做起[/blue]
一、不清空数据
原理:删除原有的自增ID...
MYSQL报错#1063 - Incorrect column specifier for column 'id'的解决方法
今天给客户写功能的时候发现数据库一直无法插入数据,后来一看发现数据表的ID字段设置了不可为空,但是插入数据时我确没有指定id导致无法插入。
于是我马上想到将ID字段设置为自动增值,但又爆出了个错误
#1063 - Incorrect column specifier for column 'id'
经过排查发现,我...
EMLOG使用指定数据库端口连接
正常来说,我们服务器上安装MYSQL默认都是3306端口,但是通常为了安全起见,有的小伙伴会选择修改这个默认端口,但这会导致许多程序无法使用,这是因为程序已经把把端口号指定好了,或者是说创建连接的时候根本没有指定,导致连接的端口永远都是3306默认端口,而EMLOG就属于后者,既然系统没有为我们指定端口,那么我们就来自己指定一个吧!
首先,我们假...