MySQL 8.0 + Navicat 完整操作指南

适用环境:Windows 10/11 + MySQL 8.0 + Navicat Premium 16

本文涵盖:MySQL 常用命令、数据导入导出、Navicat 图形化操作

一、MySQL 服务管理

1.1 检查服务状态

bash 复制代码
# 查看 MySQL80 服务状态
sc query MySQL80

输出解读:

bash 复制代码
STATE: 4 RUNNING      → 服务正在运行
STATE: 1 STOPPED      → 服务已停止

1.2 启动与停止服务

bash 复制代码
# 启动服务
net start MySQL80

# 停止服务
net stop MySQL80

# 重启服务
net stop MySQL80 && net start MySQL80

说明sc 用于查询/配置服务,net 用于启动/停止服务。

1.3 设置开机自启

  1. Win + Rservices.msc

  2. 找到 MySQL80 → 右键 属性

  3. 启动类型 改为 自动

二、命令行登录与基本操作

2.1 登录 MySQL

bash 复制代码
# 方式1:输入密码(推荐,密码不显示)
mysql -u root -p

# 方式2:直接带密码(不安全,密码会暴露在命令历史中)
mysql -u root -p你的密码

# 方式3:指定主机和端口
mysql -h localhost -P 3306 -u root -p

如果提示 mysql 不是内部命令,需配置环境变量:将 C:\Program Files\MySQL\MySQL Server 8.0\bin 添加到系统 Path

2.2 数据库操作

bash 复制代码
-- 查看所有数据库
SHOW DATABASES;

-- 创建数据库
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 使用/切换数据库
USE mydb;

-- 删除数据库(谨慎!)
DROP DATABASE mydb;

-- 查看当前使用的数据库
SELECT DATABASE();

2.3 表操作

bash 复制代码
-- 查看所有表
SHOW TABLES;

-- 查看表结构
DESC 表名;
-- 或
SHOW CREATE TABLE 表名;

-- 创建表
CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 删除表
DROP TABLE 表名;

-- 清空表数据(保留表结构)
TRUNCATE TABLE 表名;

2.4 用户与权限

bash 复制代码
-- 创建用户
CREATE USER 'dev_user'@'localhost' IDENTIFIED BY '密码';

-- 授权(所有权限)
GRANT ALL PRIVILEGES ON mydb.* TO 'dev_user'@'localhost';

-- 授权(仅查询)
GRANT SELECT ON mydb.* TO 'dev_user'@'localhost';

-- 刷新权限
FLUSH PRIVILEGES;

-- 查看用户权限
SHOW GRANTS FOR 'dev_user'@'localhost';

-- 删除用户
DROP USER 'dev_user'@'localhost';

2.5 数据操作(CRUD)

bash 复制代码
-- 插入数据
INSERT INTO users (username, email) VALUES ('张三', 'zhangsan@qq.com');

-- 查询数据
SELECT * FROM users;
SELECT username, email FROM users WHERE id = 1;

-- 更新数据
UPDATE users SET email = 'new@qq.com' WHERE id = 1;

-- 删除数据
DELETE FROM users WHERE id = 1;

三、数据导入导出

3.1 命令行导出(mysqldump)

bash 复制代码
# 导出整个数据库(结构和数据)
mysqldump -u root -p mydb > D:\backup\mydb_backup.sql

# 只导出表结构(不含数据)
mysqldump -u root -p -d mydb > D:\backup\mydb_structure.sql

# 只导出数据(不含结构)
mysqldump -u root -p -t mydb > D:\backup\mydb_data.sql

# 导出指定表
mysqldump -u root -p mydb users orders > D:\backup\mydb_tables.sql

# 导出时包含创建数据库语句
mysqldump -u root -p --databases mydb > D:\backup\mydb_full.sql

3.2 命令行导入

bash 复制代码
# 方式1:登录后选择数据库导入
mysql -u root -p
USE mydb;
SOURCE D:\backup\mydb_backup.sql;

# 方式2:直接命令行导入(推荐)
mysql -u root -p mydb < D:\backup\mydb_backup.sql

表格

操作 步骤
导出整个数据库 右键数据库 → 转储 SQL 文件 → 结构和数据
导出单张表 右键表 → 转储 SQL 文件 → 结构和数据
导出仅结构 右键数据库 → 转储 SQL 文件 → 仅结构
导出仅数据 右键数据库 → 转储 SQL 文件 → 仅数据

导出选项说明:

  • 结构和数据:建表语句 + INSERT 数据(最常用)

  • 仅结构:只导出 CREATE TABLE

  • 仅数据:只导出 INSERT 语句

表格

操作 步骤
导入 SQL 文件 右键数据库 → 运行 SQL 文件 → 选择 .sql 文件
从备份恢复 右键数据库 → 还原 → 选择备份文件

四、Navicat 连接 MySQL

4.1 新建连接

  1. 打开 Navicat → 点击 连接 → 选择 MySQL

  2. 填写连接信息:

表格

配置项 说明
连接名 自定义,如 本地MySQL192服务器
主机 localhost 或服务器 IP,如 192.168.2.190
端口 3306(默认)
用户名 root 或自定义用户
密码 对应用户的密码
  1. 点击 测试连接 → 显示"连接成功" → 点击 确定

4.2 MySQL 8.0 认证问题

如果连接报错:

bash 复制代码
Authentication plugin 'caching_sha2_password' cannot be loaded

解决方法------修改用户认证方式:

sql 复制代码
-- 登录 MySQL 后执行
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;

或使用 Navicat 16+ 版本,原生支持 caching_sha2_password

4.3 新建数据库

  1. 右键连接名 → 新建数据库

  2. 填写:

表格

配置项 建议值
数据库名 项目名,如 erp_system
字符集 utf8mb4
排序规则 utf8mb4_unicode_ci

4.4 常用图形化操作

表格

功能 操作路径
查看表数据 双击表名
编辑数据 双击表 → 直接修改单元格 → 点击 ✓ 保存
设计表结构 右键表 → 设计表
新建查询 点击 查询新建查询 → 写 SQL
查看 ER 图 右键数据库 → 逆向数据库到模型
数据同步 工具 → 数据同步 / 结构同步

五、常见问题

Q1: 忘记 root 密码怎么办?

bash 复制代码
# 1. 停止 MySQL 服务
net stop MySQL80

# 2. 以跳过权限方式启动
mysqld --skip-grant-tables

# 3. 新开 CMD,无密码登录
mysql -u root

# 4. 修改密码
USE mysql;
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
FLUSH PRIVILEGES;
EXIT;

# 5. 重启正常服务
net start MySQL80

Q2: 连接报错 "Can't connect to MySQL server"

  • 检查服务是否运行:sc query MySQL80

  • 检查端口是否被占用:netstat -ano | findstr 3306

  • 检查防火墙是否放行 3306 端口

Q3: 导入 SQL 文件报错 "Unknown character set"

  • 确保 SQL 文件编码为 UTF-8

  • 导入时指定编码:SET NAMES utf8mb4;

Q4: 中文乱码

sql 复制代码
-- 查看当前编码
SHOW VARIABLES LIKE 'character_set_%';

-- 临时修改会话编码
SET NAMES utf8mb4;

六、快速参考表

表格

需求 命令/操作
查看版本 mysql --version
登录 mysql -u root -p
退出 EXIT;QUIT;
查看所有库 SHOW DATABASES;
查看所有表 SHOW TABLES;
查看表结构 DESC 表名;
备份数据库 mysqldump -u root -p dbname > file.sql
恢复数据库 mysql -u root -p dbname < file.sql
启动服务 net start MySQL80
停止服务 net stop MySQL80

提示:生产环境操作前务必先备份数据!

相关推荐
云絮.2 小时前
数据库操作
数据库·mysql·算法·oracle
小小工匠2 小时前
Redis 缓存替换策略:8 种淘汰策略与 LRU 实现剖析
数据库·redis·缓存
设计师小聂!4 小时前
宝塔 Linux 面板保姆级教程
linux·mysql·开源·运维开发
小小龙学IT4 小时前
Go 泛型深度解析:从设计哲学到工程实践
服务器·数据库·golang
天行健,君子而铎4 小时前
2026年通用行业数据分类分级产品排名——聚焦成本低、全链路覆盖与高性能计算的优质选型
大数据·数据库·人工智能
Tong Z5 小时前
Mysql DDL中的ALGORITHM
数据库·mysql
电商API_180079052475 小时前
Python 实现闲鱼商品列表批量采集,接口异常重试机制搭建
大数据·开发语言·数据库·爬虫·python
焦虑的说说6 小时前
redis和数据库的一致性如何保证
数据库·redis·缓存