mysql 登陆问题(10061、1045)
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”(不输入密码),提示输入密码不用管,
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 ”,输入密码即可成功连接数据库。
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 ”,输入密码即可成功连接数据库。