本地计算机上的 mysq 服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。
笔记本电脑上的MySQL也是经常在使用的,有一天使用dbeaver连接时突然就连接不上了!!!
分析报错信息,也不是口令问题!
于是赶快看看计算机服务
,发现服务状态是:已停止!
那就手动启动吧(心想)!But不可以!!!
赶紧Google一下!
- 端口占用(
netstat -ano
,查看进程pid,任务管理器结束对应进程) - 缺少配置文件(如
my.ini
) - 缺少
data
文件夹- bin目录以管理员身份进入命令行
mysqld --initialize --user=mysql --console
,重新初始化MySQL数据目录net start mysql
,启动MySQLALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
,修改密码
还是不行!
查看一下MySQL的error.log
文件,没有线索!
最后不小心打开了bin.index
,发现不太对:
于是将bin.index
修改成bin.index.bak
文件,相当于是删除了,再次启动MySQL,OK
简单了解一下bin.index:
启用 MySQL 的二进制日志(binary logging)时,MySQL 会将所有对数据库的更改操作(如插入、更新、删除等)以二进制格式记录到一个或多个二进制日志文件中。这些日志文件具有一定的大小限制,一旦达到设定的大小限制,MySQL 就会自动关闭当前的日志文件并创建一个新的日志文件,以保持日志文件的大小可控。
bin.index 文件是一个文本文件,它记录了当前正在使用的二进制日志文件的名称以及历史上创建过的二进制日志文件的名称。每次 MySQL 服务器启动时,它都会查找 bin.index 文件,以确定应该从哪个二进制日志文件开始写入新的日志条目。
在 bin.index 文件中,每行包含一个二进制日志文件的文件名。例如:
.\bin.000001
.\bin.000002
.\bin.000003
在启动 MySQL 服务器时,它将从 .\bin.000003 文件开始写入新的二进制日志条目,如果需要创建新的日志文件,那么会以 .\bin.000004 的文件名来创建新的日志文件。
通过这种方式,bin.index 文件允许 MySQL 服务器管理二进制日志文件的轮换,确保数据的持久性和一致性。它还允许 MySQL 在启动时正确地定位到应该从哪个日志文件开始写入新的日志条目,从而保证数据的完整性。