找到一个教程MySQL8.0.17 跳坑1045错误
照着教程执行mysqld --console --skip-grant-tables --shared-memory命令的时候,
出现以下错误:
2024-12-04T03:03:18.144403Z 0 [ERROR] [MY-013276] [Server] Failed to set datadir to 'D:\MySQL\MySQL Server 8.0\data\' (OS errno: 2 - No such file or directory)
查看my.ini文件发现:
my.ini中[mysqld] datadir=D:/MySQL/WorkSpace/Data
说明MySQL 仍然在尝试使用旧的数据目录路径 D:\MySQL\MySQL Server 8.0\data\
,而不是新设置的路径 D:/MySQL/WorkSpace/Data
。这可能是因为 MySQL 在启动时没有正确读取配置文件,或者配置文件的路径不正确。
解决方法:
C:\Windows\System32>mysqld --defaults-file=D:\MySQL\WorkSpace\my.ini
然后就可以成功连接了
第二天又没办法连接了
于是我又执行以下命令
发现还是没办法连接
然后按着昨天的步骤执行命令
net stop mysql
发现又连上了。
搜索发现:
MySQL本地系统和网络服务的主要区别在于服务范围和对外连接的支持。本地系统主要用于本地应用操作数据库,而网络服务允许外部连接到数据库。
本地系统
本地系统的MySQL服务主要供本地应用程序使用。这意味着只有在同一台计算机上的应用程序才能访问和操作数据库。使用本地系统时,外部应用程序无法连接到数据库1。
网络服务
网络服务的MySQL允许外部应用程序连接到数据库。这意味着你可以从不同的计算机或网络中的应用程序访问和操作数据库。网络服务通常用于需要远程访问数据库的场景,例如使用Navicat等图形化操作工具2。
同时启动服务的冲突
尝试同时启动本地系统和网络服务时,可能会遇到冲突。例如,performance_schema表或库无法被外界访问。这是因为两个服务可能会尝试使用相同的端口(通常是3306),导致端口冲突3。
解决方法
为了避免冲突,可以正确配置MySQL服务,确保外部应用程序能够正确连接到包含所需数据库的服务器实例。具体方法包括:
确保只有一个服务在运行,避免端口冲突。
配置MySQL服务,使其支持外部连接。
于是把mysql改为手动