Navicat - 连接 数据库
-
- SqlServer
- mysql
- 查看主机、用户名
- 忘记密码
- [遇到错误 :](#遇到错误 :)
- [1. 提示ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost:3306' (10061)](#1. 提示ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost:3306‘ (10061))
- [2. ERROR 1064 (42000)](#2. ERROR 1064 (42000))
- [你遇到 `ERROR 1064` 语法错误,通常是因为 MySQL 版本与语法不匹配。下面是详细分析和解决方法:](#你遇到
ERROR 1064语法错误,通常是因为 MySQL 版本与语法不匹配。下面是详细分析和解决方法:) - [🔍 1. 错误原因分析](#🔍 1. 错误原因分析)
- [🛠️ 2. 解决方案](#🛠️ 2. 解决方案)
-
- [✅ 方法一:确认 MySQL 版本](#✅ 方法一:确认 MySQL 版本)
- [✅ 方法二:MySQL 5.7 及以下版本改密码](#✅ 方法二:MySQL 5.7 及以下版本改密码)
-
- [① 使用 SET PASSWORD(推荐)](#① 使用 SET PASSWORD(推荐))
- [② 或者用 UPDATE 直接改表](#② 或者用 UPDATE 直接改表)
- [✅ 方法三:跳过权限表重置(通用)](#✅ 方法三:跳过权限表重置(通用))
- [⚠️ 3. 常见坑点](#⚠️ 3. 常见坑点)
- [📚 4. 参考来源](#📚 4. 参考来源)
- [🎯 5. 小结](#🎯 5. 小结)
SqlServer

- 点击连接 sqlserver

- 这里的主机对照sql server management 中 的主机名 , 以及登录用户名密码


- 测试连接成功 就可以点击确定
mysql

查看主机、用户名
csharp
## 登录 - 输入密码
mysql -u root -p
SELECT User, Host FROM mysql.user;
## 这样会列出所有用户名,例如:
+------------------+-----------+
| User | Host |
+------------------+-----------+
| root | localhost |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
+------------------+-----------+
通常,你用的就是 root@localhost。
忘记密码
- 管理员启动cmd - 以管理员身份运行

- 运行命令 - 停止mysql服务
csharp
net stop mysql
- 在 目录 - C:\ProgramData\MySQL\MySQL Server 5.5 下 新建 - my.ini
csharp
[mysqld]
skip-grant-tables
- 启动无需输入密码模式
csharp
mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.5\my.ini" --console
- 保持这个cmd运行 , 启动新的窗口 - 无需输入密码
csharp
mysql -u root
- 刷新权限
csharp
FLUSH PRIVILEGES;
- 修改密码
csharp
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
- 关闭所有cmd窗口
- 删除my.ini中的skip-grant-tables
- 重启服务:
csharp
net start mysql
遇到错误 :
1. 提示ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost:3306' (10061)

- MySQL 服务器未启动(常见原因)
csharp
net start mysql # 启动mysql
- 通过任务管理器检查 MySQL 进程

2. ERROR 1064 (42000)
csharp
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'konoDioda233';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'USER 'root'@'localhost' IDENTIFIED BY 'konoDioda233'' at line 1
你遇到 ERROR 1064 语法错误,通常是因为 MySQL 版本与语法不匹配。下面是详细分析和解决方法:
🔍 1. 错误原因分析
你执行的语句:
sql
ALTER USER 'root'@'localhost' IDENTIFIED BY 'konoDioda233';
- 这个语法在 MySQL 8.0 及以上版本 是正确的。
- 但在 MySQL 5.7 及以下版本 ,不支持
ALTER USER ... IDENTIFIED BY语法,会报 1064 错误。
🛠️ 2. 解决方案
✅ 方法一:确认 MySQL 版本
先查看你的 MySQL 版本:
sql
SELECT VERSION();
- 如果是 8.0+,你原来的语句应该没问题,可能需要检查权限或是否登录正确。
- 如果是 5.7 或更早,请用下面的方法。
✅ 方法二:MySQL 5.7 及以下版本改密码
① 使用 SET PASSWORD(推荐)
sql
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('konoDioda233');
FLUSH PRIVILEGES;
② 或者用 UPDATE 直接改表
sql
UPDATE mysql.user SET authentication_string = PASSWORD('konoDioda233') WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
✅ 方法三:跳过权限表重置(通用)
如果上述方法还是报错,可以跳过权限表重置密码:
-
停止 MySQL (管理员 CMD):
bashnet stop mysql -
修改 my.ini ,在
[mysqld]下加:iniskip-grant-tables -
重启 MySQL :
bashnet start mysql -
无密码登录 :
bashmysql -u root -
重置密码 (根据版本选一个):
-
MySQL 8.0+:
sqlALTER USER 'root'@'localhost' IDENTIFIED BY 'konoDioda233'; FLUSH PRIVILEGES; -
MySQL 5.7:
sqlUPDATE mysql.user SET authentication_string = PASSWORD('konoDioda233') WHERE User = 'root' AND Host = 'localhost'; FLUSH PRIVILEGES;
-
-
去掉 skip-grant-tables,重启 MySQL。
⚠️ 3. 常见坑点
-
密码策略 :MySQL 5.7+ 默认密码策略较严格,如果密码太简单,会报
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements。可以临时降低策略:sqlSET GLOBAL validate_password_policy = 0; SET GLOBAL validate_password_length = 6; -
大小写 :
USER和user都可以,但关键字最好大写。 -
引号 :密码要用单引号
' '包裹。
📚 4. 参考来源
- MySQL密码忘记了怎么办?5分钟快速找回全攻略(附详细图解)
- 登录MySQL时,提示ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost:3306' (10061)
🎯 5. 小结
- MySQL 8.0+ → 用
ALTER USER ... IDENTIFIED BY - MySQL 5.7 及以下 → 用
SET PASSWORD ... = PASSWORD('新密码')或UPDATE mysql.user SET authentication_string = PASSWORD('新密码') - 如果都不行,用 skip-grant-tables 跳过权限表重置。