首页 > 技术文章 > mysql 登陆问题(10061、1045)

xyann 2020-03-13 16:39 原文

1、Can't connect to MySQL server on xxx (10061)

        报错:Can't connect to MySQL server on xxx (10061)   无法连接到MySql服务
        问题:使用cmd命令行工具,执行命令mysql -u root -p 登陆mysql时,报出上面错误,无法连接到MySql服务
        解决:①、 在开始菜单中找到计算机管理,在计算机管理中找到【服务】,在服务中检查是否存在MySql服务
                    
                ②、 如果在步骤①中找不到MySql服务,则需要手动安装MySql服务,安装命令mysqld -install,安装成功会提示           
                    Service successfully installed,由于本机中已经安装了MySql服务,则是如下提示
                    
                ③、无法启动服务,紧跟着还有一个报错:本地计算机上的MySQL服务启动后停止。某些服务在未由其他服务或程序                
                     使用时将自动停止,
                    
 
                ④、 首先务必使用管理员权限进入到命令行、务必使用管理员权限进入到命令行、务必使用管理员权限进入到命令行,        
                        重要的事情说三遍,不然的话就会出现“发生系统错误  拒绝访问。”这样的错误,
                ⑤、之后进入到MySQL安装目录下,找到bin目录,一般来说,
                        MySQL的安装默认路径是:C:\Program Files\MySQL\MySQL Server 5.7\bin,
                         
            ⑥、之后进行初始化data目录。如果在与bin目录同级的文件夹下没有data文件夹的话,
                    则创建一个data空目录,名字务必为data。
                   如果有该目录的话,记得要清空data目录下的所有初始文件,
                   
            ⑦、之后到bin目录下执行命令(管理员身份打开命令行窗口):mysqld –-initialize,如下图所示
                    
 
            ⑧、之后就可以看到MySQL服务顺利启动。
                    而且在状态栏的MySQL Notifier中也会弹出提示,如下图所示,MySQL的状态变为从停止变为启动。

2、ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

            问题:不知道为啥,我时不时通过命令行窗口再次登录数据库(命令为:mysql –u root -p)会突然出现错误
                     报错为:ERROR 1045 (28000): Access denied for user 'root'@'localhost'  (using password: YES),如下图所示。
                       
            解决:①、如果这个错误是接着上个问题出现的,那就是因为MySQL初始化之后,
                        生成了一个初始密码,放在了data文件夹下以.err为后缀的文件夹下,如下图所示。
                      
            ②、 将初始化密码进行复制,粘贴到MySQL登录的密码中去,如下图所示。 此时可以看到,顺利进入到了MySQL。
                        
 
             ③、但是直接输入MySQL的简单命令之后,发现并不能操作数据库,
                    会提示报错:ERROR 1820 (HY000): You must reset your password using ALTER USER statement 
                    before executing this statement.,
                    如下图所示。
                    
 
            ④、 这个报错的意思是告诉你重设密码,此时只需要输入命令重新设置密码即可。
                    MySQL重设密码的方法网上有很多是,例如:alter user 'root'@'localhost' identified by '123456';,
                    其中123456是重设的密码,大家可以自定义的,顺利设置完成之后记得刷新权限:flush privileges;,。
                     
                     
            注:如果1045问题单独出现,
                    网上大多解决方法如下,但我每次出现该问题使用“skip-grant-tables”方法都没得用,
                    我每次重新初始化data文件,重新生成个密码,在登陆MySql即可(问题1的⑥+问题2的①②)
                    网上方法:
                        1.打开MySQL目录下的my.ini文件,在文件的最后添加一行“skip-grant-tables”,保存并关闭文件。
                        (WIN7默认安装,my.ini在C:\ProgramData\MySQL\MySQL Server 8.0)
                        2.重启MySQL服务。
                        3.通过命令行进入MySQL的BIN目录,输入“mysql -u root -p”(不输入密码),提示输入密码不用管,
                            直接Enter回车即可进入数据库。(WIN7默认安***IN目录为:C:\Program Files\MySQL\MySQL Server 8.06\bin)
                        4.执行“use mysql;”,使用mysql数据库。
                        5.执行“update user set password=PASSWORD("123456") where user='root';”(修改root的密码)
                        6.打开MySQL目录下的my.ini文件,删除最后一行的“skip-grant-tables”,保存并关闭文件。
                        7.重启MySQL服务。
                        8.在命令行中输入“mysql -u root -p ”,输入密码即可成功连接数据库。

推荐阅读