插件窝 干货文章 入门MySQL数据库导入与导出及重置root密码

入门MySQL数据库导入与导出及重置root密码

导出 MySQL 数据库 导入 332    来源:    2025-05-22

MySQL 数据库导入导出及root密码重置指南

一、MySQL数据库导出

1. 导出整个数据库

mysqldump -u 用户名 -p 数据库名 > 导出的文件名.sql

示例:

mysqldump -u root -p mydatabase > mydatabase_backup.sql

2. 导出特定表

mysqldump -u 用户名 -p 数据库名 表名 > 导出的文件名.sql

3. 导出数据库结构(不含数据)

mysqldump -u 用户名 -p -d 数据库名 > 导出的文件名.sql

4. 导出压缩文件

mysqldump -u 用户名 -p 数据库名 | gzip > 导出的文件名.sql.gz

二、MySQL数据库导入

1. 导入整个数据库

mysql -u 用户名 -p 数据库名 < 导入的文件名.sql

2. 在MySQL命令行中导入

mysql> use 数据库名;
mysql> source /path/to/导入的文件名.sql;

3. 导入压缩文件

gunzip < 导入的文件名.sql.gz | mysql -u 用户名 -p 数据库名

三、重置MySQL root密码

方法1:使用--skip-grant-tables选项

  1. 停止MySQL服务
sudo systemctl stop mysql
  1. 以跳过权限检查方式启动MySQL
sudo mysqld_safe --skip-grant-tables &
  1. 连接到MySQL服务器
mysql -u root
  1. 更新root密码(MySQL 5.7.6+)
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
  1. 退出MySQL并重启服务
sudo systemctl restart mysql

方法2:使用--init-file选项

  1. 创建一个包含密码修改命令的文件
echo "ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';" > /tmp/init-file.sql
  1. 停止MySQL服务
sudo systemctl stop mysql
  1. 使用init-file启动MySQL
sudo mysqld --init-file=/tmp/init-file.sql &
  1. 重启MySQL服务
sudo systemctl restart mysql

四、注意事项

  1. 导入导出时确保有足够的权限
  2. 大型数据库导入导出可能需要较长时间
  3. 重置密码后,确保删除/tmp/init-file.sql等临时文件
  4. 生产环境操作前建议先备份数据
  5. 不同MySQL版本密码重置语法可能略有不同

五、常见问题解决

问题1:导入时出现"Unknown command '\''错误 - 解决方案:确保SQL文件编码正确,尝试使用--default-character-set=utf8mb4选项

问题2:重置密码后无法登录 - 解决方案:检查是否刷新了权限(FLUSH PRIVILEGES),确认密码是否包含特殊字符

问题3:导出时内存不足 - 解决方案:使用--quick选项或分表导出