MySQL发生Can''t connect to MySQL server on localhost (10061)解决方法

我遇到的问题是Navicat可以登录MySQL但自己本地命令行就会报如上标题的问题。

mysql 8.0版本的问题
正确步骤。

方法一

1.下载MySQL8.0后解压,根目录没有data文件夹和my.ini文件,我们也不要创建。

(若已经安装了MySQL的将服务停止,删除安装目录下的data和my.ini,当然我建议你找个地方吧my.ini暂存一下,还有你需要的数据库备份文件
然后删除服务
mysqld --remove

关于找不到my.ini的问题(经检验,my.ini文件还是要在这加入才有效,不然下面这些步骤完成之后再做就打不开服务了)

你可能会在这里找到
fa9e3d612e2372ecdd0bdff79c2ae19a.jpeg
c盘,programData文件夹里面的MySQL目录下
当然还有可能在
ba0d57b319c79cef2a8a3519340d22e8.png
图二来自MySQL 8.0版本安装后,安装目录下找不到my.ini文件

如果你哪里都找不到可以来下载,当然也可以自己写,但下载的这个会比较全,自己修改起来也好找
my.ini下载
如果这个下载连接无效的话通知我一下哦,还有积分如果被动被改高了,也给我说一下我改成0积分。

一些关键修改(主要看你的需求,做些设置)

[client] 
default-character-set = utf8 
port=3306
[mysql] 
default-character-set = utf8 
[mysqld]  
character-set-server = utf8
port=3306(自己用什么接口填什么接口,默认是3306)
basedir=根目录(自行填自己的安装位置)
datadir=根目录(自行填自己的安装位置)data 
default-storage-engine=INNODB
sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"

2.将“根目录/bin”路径添加到环境变量中。

3.用管理员启动命令行,win10是右键左下角win图标,选择“Windows powershell(管理员)”。

4.输入

mysqld --initialize-insecure --user=mysql
这一步可能等待时间很长

5.然后输入

mysqld --install mysql

6.输入

net start mysql

7.输入

mysql -u root
初始化后不需要输入密码

8.初始化密码

alter user 'root'@'localhost' identified by '123456'
退出
exit
再次登录
mysql -u root -p
输入密码123456就可以登录了

9.建立远程访问

#使用初始库
>use mysql;
#查看用户表
>select host, user, plugin from user;
#发现没有host是%的用户root,于是创建一个
>create user 'root'@'%' identified by '123456';
#给权限,第二句不能用就退出再登一次
>GRANT ALL privileges on *.* to 'root'@'%' with grant option;
>flush prilileges;

这时再拿Navicat登录就可以登录了,注意自己的端口号不要写错了

方法二

1、在原有数据库情况下,把data文件夹删除,保留my.ini文件,把需要的内容填上,不需要的内容注释掉
2、将“根目录/bin”路径添加到环境变量中
3、用管理员启动Windows powershell
4、执行下列语句

mysqld --remove
mysqld --initialize --console (该语句会生成一个初始密码,例如这样的root@localhost: 4aO40dXvxg+S,把后面的内容保存,之后要填密码)
mysqld --install
net start mysql
mysql -u root -p(该语句接下来填的密码就是上面保存的那个)
alter user 'root'@'localhost' identified by '123456'(修改初始密码)
按照上面方法一的创建新用户等步骤就可以了
原文地址:https://www.cnblogs.com/AlinaL/p/14041959.html