Navicat - 连接 mysql 、 sqlserver 数据库 步骤与问题解决

    • 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

  1. 点击连接 sqlserver
  2. 这里的主机对照sql server management 中 的主机名 , 以及登录用户名密码

  3. 测试连接成功 就可以点击确定

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。

忘记密码

  1. 管理员启动cmd - 以管理员身份运行
  2. 运行命令 - 停止mysql服务
csharp 复制代码
net stop mysql
  1. 在 目录 - C:\ProgramData\MySQL\MySQL Server 5.5 下 新建 - my.ini
csharp 复制代码
[mysqld]
skip-grant-tables
  1. 启动无需输入密码模式
csharp 复制代码
mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.5\my.ini" --console
  1. 保持这个cmd运行 , 启动新的窗口 - 无需输入密码
csharp 复制代码
mysql -u root
  1. 刷新权限
csharp 复制代码
FLUSH PRIVILEGES;
  1. 修改密码
csharp 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
  1. 关闭所有cmd窗口
  2. 删除my.ini中的skip-grant-tables
  3. 重启服务:
csharp 复制代码
net start mysql

遇到错误 :

1. 提示ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost:3306' (10061)

  1. MySQL 服务器未启动(常见原因)
csharp 复制代码
net start mysql # 启动mysql 
  1. 通过任务管理器检查 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;

✅ 方法三:跳过权限表重置(通用)

如果上述方法还是报错,可以跳过权限表重置密码:

  1. 停止 MySQL (管理员 CMD):

    bash 复制代码
    net stop mysql
  2. 修改 my.ini ,在 [mysqld] 下加:

    ini 复制代码
    skip-grant-tables
  3. 重启 MySQL

    bash 复制代码
    net start mysql
  4. 无密码登录

    bash 复制代码
    mysql -u root
  5. 重置密码 (根据版本选一个):

    • MySQL 8.0+:

      sql 复制代码
      ALTER USER 'root'@'localhost' IDENTIFIED BY 'konoDioda233';
      FLUSH PRIVILEGES;
    • MySQL 5.7:

      sql 复制代码
      UPDATE mysql.user SET authentication_string = PASSWORD('konoDioda233') WHERE User = 'root' AND Host = 'localhost';
      FLUSH PRIVILEGES;
  6. 去掉 skip-grant-tables,重启 MySQL


⚠️ 3. 常见坑点

  • 密码策略 :MySQL 5.7+ 默认密码策略较严格,如果密码太简单,会报 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements。可以临时降低策略:

    sql 复制代码
    SET GLOBAL validate_password_policy = 0;
    SET GLOBAL validate_password_length = 6;
  • 大小写USERuser 都可以,但关键字最好大写。

  • 引号 :密码要用单引号 ' ' 包裹。


📚 4. 参考来源


🎯 5. 小结

  • MySQL 8.0+ → 用 ALTER USER ... IDENTIFIED BY
  • MySQL 5.7 及以下 → 用 SET PASSWORD ... = PASSWORD('新密码')UPDATE mysql.user SET authentication_string = PASSWORD('新密码')
  • 如果都不行,用 skip-grant-tables 跳过权限表重置。


三级目录

相关推荐
fen_fen18 小时前
Oracle建表语句示例
数据库·oracle
砚边数影19 小时前
数据可视化入门:Matplotlib 基础语法与折线图绘制
数据库·信息可视化·matplotlib·数据可视化·kingbase·数据库平替用金仓·金仓数据库
orange_tt19 小时前
Djiango配置Celery
数据库·sqlite
云小逸20 小时前
【nmap源码学习】 Nmap网络扫描工具深度解析:从基础参数到核心扫描逻辑
网络·数据库·学习
·云扬·20 小时前
MySQL Binlog落盘机制深度解析:性能与安全性的平衡艺术
android·mysql·adb
肉包_51120 小时前
两个数据库互锁,用全局变量互锁会偶发软件卡死
开发语言·数据库·c++
霖霖总总21 小时前
[小技巧64]深入解析 MySQL InnoDB 的 Checkpoint 机制:原理、类型与调优
数据库·mysql
此刻你21 小时前
常用的 SQL 语句
数据库·sql·oracle
それども1 天前
分库分表的事务问题 - 怎么实现事务
java·数据库·mysql
·云扬·1 天前
MySQL Binlog 配置指南与核心作用解析
数据库·mysql·adb