mysql无法启动服务及其他问题总结
作者:mmseoamin日期:2023-12-14

文章目录

  • 1.安装后关于配置的问题
    • 显示【发生系统错误,拒绝访问】
    • 命令行Command Line Client闪退
    • 2.显示【MySQL服务无法启动】问题
      • 检查端口被占用
      • 删除data文件并初始化
      • 配置my.ini/.conf文件
      • 重新安装MySQL

        1.安装后关于配置的问题

        显示【发生系统错误,拒绝访问】

        1. mysql安装之后运行cmd执行【net start mysql】命令后报错:发生系统错误 5。拒绝访问。

          mysql无法启动服务及其他问题总结,在这里插入图片描述,第1张

          原因:没有以管理员权限运行cmd.exe程序

          解决方法:

          在电脑中找到命令提示符—>右键—>以管理员身份运行

        2. 重新输入【net start mysql】

          报错:【发生系统错误 2。系统找不到指定的文件。】

          尝试解决:

          【mysqld --remove】

          【mysqld --install】

          mysql无法启动服务及其他问题总结,在这里插入图片描述,第2张

        命令行Command Line Client闪退

        1. 双击MySQL Command Line Client之后窗口一闪而退:

          解决:

          1)查看程序默认执行文件是否存在

          2)还是由于MySQL服务没有启动的原因

        2. MySQL Command Line Client后窗口输入密码后闪退:

          解决:以管理员身份进入cmd,输入命令【net start mysql】重新启动mysql,然后重新启动MySQL Command Line Client即可。

        2.显示【MySQL服务无法启动】问题

        在安装调试好后,隔一段时间没用,再打开命令提示符就显示这个【MySQL服务无法启动】。

        mysql无法启动服务及其他问题总结,在这里插入图片描述,第3张

        由于命令行中启动会有反应速度的原因,启动不了先试试从任务管理器里启动mysql。

        mysql无法启动服务及其他问题总结,在这里插入图片描述,第4张

        还是不行就试以下方法:

        检查端口被占用

        由于mysql默认端口为3306,所以需要检查这个端口号下是否有正在运行的进程。

        方法一:cmd进入安装目录bin的路径下,输入命令 【netstat -ano】 ,找到3306接口的PID值。从下图可看到为【8964】

        mysql无法启动服务及其他问题总结,在这里插入图片描述,第5张

        打开任务管理器—>详细信息,根据PID找到对应的mysql进程,右击关闭。

        mysql无法启动服务及其他问题总结,在这里插入图片描述,第6张

        重新启动mysql,输入【net start mysql】

        方法二:

        查看3306端口使用情况

        1. 打开命令提示符中输入【netstat -aon|findstr “3306”】

          mysql无法启动服务及其他问题总结,在这里插入图片描述,第7张

          注意:33060是mysql8.0+版本的扩展端口

        2. 强制终止进程8964,输入【taskkill /F /pid 8964】,显示成功终止即可。

          mysql无法启动服务及其他问题总结,在这里插入图片描述,第8张

        删除data文件并初始化

        这是我觉得最经常尝试的方法。

        如果不是初次安装,之前已经使用过,则需要先手动删除mysql安装目录下的data文件,我的安装路径是C:\Program Files\MySQL\MySQL Server 8.0\data

        用管理员身份打开命令提示符——

        注意:这里有三种方式

        (1)执行【mysqld --initialize-insecure】(在安装目录中形成data文件夹,不显示或者说会初始化空密码)

        mysql无法启动服务及其他问题总结,在这里插入图片描述,第9张

        注意:之后进入的时候输密码时直接回车即可

        mysql无法启动服务及其他问题总结,在这里插入图片描述,第10张

        (2)【mysqld --initialize】(初始化后会形成新密码,在data文件中以 .err 结尾的文件中)

        **root@localhost:**后的字符串即是初始化后的密码

        (3)【mysqld --initialize --console】(所有初始化信息会直接在控制台显示)

        —> 之后重新启动mysql【net start mysql】

        —> 启动成功之后 【mysql -u root -p】

        —> 输入初始化后的密码,进入mysql

        —> 修改密码,

        【use mysql】

        mysql>【ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘你的新密码’;】

        注意:可能出现错误【ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corre】

        解决方式:

        【flush privileges;】

        【ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘新密码’;】

        mysql无法启动服务及其他问题总结,在这里插入图片描述,第11张

        这里还有一个小问题,初始化不成功,进入命令行后发现还是启动不成功,这时打开data文件下的以 .err 结尾的文件会发现显示错误日志

        mysql无法启动服务及其他问题总结,在这里插入图片描述,第12张

        看到这行内容的时候会发现,其实还是端口的问题,具体见上面的解决办法。

        配置my.ini/.conf文件

        检查在安装路径下有没有配置文件,如果没有的话手建一个【my.ini】

        mysql无法启动服务及其他问题总结,在这里插入图片描述,第13张

        进行相关属性配置:

        [mysqld]
        #设置北京时间
        default-time_zone = '+8:00'
        # 设置3306端口
        port=3306
        # 设置mysql的安装目录
        basedir=D:\MySQLDB\mysql-8.0.22-winx64(这里需要改成你的数据库所在目录)
        # 设置mysql数据库的数据的存放目录
        datadir=D:\MySQLDB\mysql-8.0.22-winx64\data(这里需要改成你的数据库中data所在目录)
        # 允许最大连接数
        max_connections=200
        # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
        max_connect_errors=10
        # 服务端使用的字符集默认为UTF8
        character_set_server=utf8
        # 创建新表时将使用的默认存储引擎
        default-storage-engine=INNODB
        # 默认使用“mysql_native_password”插件认证
        default_authentication_plugin=mysql_native_password
        # 解决无法写入空时间,解除严格限制模式
        sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
         
        [mysql]
        # 设置mysql客户端默认字符集
        default-character-set=utf8
        [client]
        # 设置mysql客户端连接服务端时默认使用的端口
        port=3306
        default-character-set=utf8
        

        重新安装MySQL

        删除已有的mysql服务,再重新安装。