前言:
朋友说在windows下面用bat命令备份失败,他一时找不到问题所在,于是找我帮忙查看下。其实我也没有用过bat写脚本,不过临时抱佛脚,bat脚本总不会比shell还难吧。
1,找回丢失的root密码
我电脑上倒是原来安装了mysql,但是由于习惯用linux下的mysql,windows的这个长久不使用,连root密码都不知道了,还得需要找回root密码,不然没有登录做测试
1.1、 首先检查mysql服务是否启动,若已启动则先将其停止服务,可在开始菜单的运行,使用命令:
net stop mysql
打开第一个cmd1窗口,切换到mysql的bin目录,运行命令:
mysqld --defaults-file="C:\ProgramFiles\MySQL\MySQL Server 5.1\my.ini" --console --skip-grant-tables
注释:
该命令通过跳过权限安全检查,开启mysql服务,这样连接mysql时,可以不用输入用户密码。 此时已经开启了mysql服务了!
这个窗口保留不关闭。
1.2、打开第二个cmd2窗口,连接mysql:
输入命令:
mysql -u root -p
出现:
Enter password:
在这里直接回车,不用输入密码。
然后就就会出现登录成功的信息,
使用命令:
show databases;
使用命令切换到mysql数据库:
use mysql;
使用命令更改root密码:
UPDATE user SET Password=PASSWORD('root')where USER='root';
刷新权限:
FLUSH PRIVILEGES;
然后退出,重新登录:
quit
重新登录:可以关掉之前的cmd1 窗口了。然后用net start mysql 启动服务
mysql -u root -p
出现输入密码提示,输入新的密码即可登录:
Enter password: ***********
显示登录信息:成功 就可以了。
PS:原blog地址为:http://blog.csdn.net/mchdba/article/details/48039035,谢绝转载
2,开始调试
2.1 贴下朋友发的运行不成功的脚本
@echo off & setlocal ENABLEEXTENSIONS
set BACKUP_PATH=D:\Backup\
set DATABASES=hoomsun_credit
set USERNAME=root
set PASSWORD=root
set MYSQL=D:\mysql-5.6.21-winx64\bin
set WINRAR=F:\winrar\Rar.exe
set YEAR=%date:~0,4%
set MONTH=%date:~5,2%
set DAY=%date:~8,2%
set HOUR=%time:~0,2%
set MINUTE=%time:~3,2%
set SECOND=%time:~6,2%
set DIR=%BACKUP_PATH%%YEAR%\%MONTH%\%DAY%\
setADDON=%YEAR%%MONTH%%DAY%%HOUR%%MINUTE%%SECOND%
:: create dir
if not exist %DIR% (
mkdir %DIR% 2>nul
)
if not exist %DIR% (
echo Backup path: %DIR% not exists, createdir failed.
goto exit
)
cd /d %DIR%
:: backup
echo Start dump databases...
for %%D in (%DATABASES%) do (
echo Dumping database %%D ...
%MYSQL%mysqldump -u%USERNAME% -p%PASSWORD%%%D > %%D.%ADDON%.sql 2>nul
:: winrar
if exist %WINRAR% (
%WINRAR% a -k -r -s -m1 -ep1 %%D.%ADDON%.rar%%D.%ADDON%.sql 2>nul
del /F /S /Q %%D.%ADDON%.sql 2>nul
)
)
echo Done
:exit
2.2 开始准备测试的库以及数据
create database hoomsun_credit;
CREATE TABLE t (
idint(1) NOT NULL DEFAULT '0',
name varchar(1) NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO t VALUES (1,'a');
2.3 我的调试过程
简单化调试,
(1)去掉了for循环,因为一个库成功了,那么N个库也会相应成功了。
(2)文件名失效导致mysqldump报错
D:\mysql-5.6.21-winx64\bin>D:\vm\backup.bat
20150827230401
Startdump databases...
Dumpingdatabase hoomsun_credit ...
Warning:Using a password on the command line interface can be insecure.
mysqldump:Couldn't find table: "04"
Dumpingdatabase manonggu ...
查到原因是生成了hoomsun_credit_20150827231815.sql的文件名,这样是无效的,如下显示
D:\mysql-5.6.21-winx64\bin>D:\vm\backup.bat
20150827231815.sql
hoomsun_credit_20150827231815.sql
Startdump databases...
Dumpingdatabase %D ...
Warning:Using a password on the command line interface can be insecure.
mysqldump:Couldn't find table: ".sql"
Done
D:\mysql-5.6.21-winx64\bin>D:\vm\backup.bat
这样我就分析出了是由于文件名变量出错,肯定是格式问题,于是我删除了原来的关于文件名的set ADDON=%YEAR%%MONTH%%DAY%%HOUR%%MINUTE%%SECOND% 这一行代码,我自己手动再敲一遍,然后运行正常如下:
D:\mysql-5.6.21-winx64\bin>D:\vm\backup.bat
20150827231922.sql
hoomsun_credit_20150827231922.sql
Startdump databases...
Dumpingdatabase %D ...
Warning:Using a password on the command line interface can be insecure.
Done
D:\mysql-5.6.21-winx64\bin>
3,贴下我最终修改过的代码
@echo off & setlocal ENABLEEXTENSIONS
set BACKUP_PATH=D:\Backup\
set DATABASES=hoomsun_credit
set USERNAME=root
set PASSWORD=root
set MYSQL=D:\mysql-5.6.21-winx64\bin
set h=%time:~0,2%
set h=%h: =0%
setbak_filename=%date:~0,4%%date:~5,2%%date:~8,2%%h%%time:~3,2%%time:~6,2%.sql
echo %bak_filename%
set YEAR=%date:~0,4%
set MONTH=%date:~5,2%
set DAY=%date:~8,2%
set HOUR=%time:~0,2%
set MINUTE=%time:~3,2%
set SECOND=%time:~6,2%
set DIR=%BACKUP_PATH%%YEAR%\%MONTH%\%DAY%\
setADDON=%YEAR%%MONTH%%DAY%%HOUR%%MINUTE%%SECOND%
set BACKUP_FILE=%DATABASES%_%ADDON%.sql
echo %BACKUP_FILE%
:: create dir
if not exist %DIR% (
echo %DIR%
mkdir %DIR% 2>nul
)
if not exist %DIR% (
echo Backup path: %DIR% not exists, createdir failed.
goto exit
)
cd /d %DIR%
:: backup
echo Start dump databases...
::for %%D in (%DATABASES%) do (
echo Dumping database %%D ...
::%MYSQL%\mysqldump -u%USERNAME%-p%PASSWORD% >%BACKUP_FILE%
%MYSQL%\mysqldump.exe -u%USERNAME%-p%PASSWORD% %DATABASES% > %BACKUP_FILE%
::)
echo Done
:exit
4,总结
bat脚本中,对于截取日期生成文件目录已经文件名的情况,要特别注意编码格式,否则会形成尾部多空格的情况,比如hoomsun_credit_20150827231815 .sql,遇到这种,就会报错的。所以大家在网上copy别人脚本的时候,要注意这些格式问题免得出错。

Windows系统上的任务栏是全球所有Windows用户最常用的功能。您可以轻松地将您最喜欢和最常用的应用程序固定在任务栏中,自定义其大小和颜色。在本文中,我们将讨论如何备份任务栏上的固定项目以及如何根据需要恢复它们。如何在Windows11中备份和恢复任务栏上的固定项目有两种方法可以备份和恢复固定的项目。有一种手动方法,您必须在安全文件夹中创建固定项目的备份及其关联的注册表文件。除此之外,还有另一种自动方法可用于自动化备份固定项目的整个过程。手动备份这个过程有两个不同的部分。第1步-

如何在麒麟操作系统上进行系统备份和恢复?麒麟操作系统是中国自主研发的开源操作系统,广泛应用于各种场景中。在使用麒麟操作系统时,系统备份和恢复是非常重要的一项任务。备份系统可以防止因故障或误操作导致数据丢失,而系统恢复则可以在系统崩溃时快速恢复正常功能。本文将详细介绍如何在麒麟操作系统上进行系统备份和恢复,并附上相关代码示例。备份系统为了备份整个系统,我们可以

微软6月24号正式公布了win11系统,可以看到用户界面、开始菜单等和Windows10X中发现的非常相似。有的朋友在使用预览版的时候发现用的不习惯,想要改win10系统开使用,那么我们要如何操作呢,下面我们就来看看win11改win10系统教程,一起来学习一下吧。1、第一步是从Windows11打开新设置。在这里,您需要转到图像中显示的系统设置。2、在系统设置下,选择“恢复”选项。在这里,您将能够看到“以前版本的窗口”选项。您还可以在它旁边看到一个“返回”按钮,单击此按钮。3、您可以指定要返回

随着互联网技术和大数据时代的到来,越来越多的企业开始依赖于数据来决策和推动业务发展。而数据备份和恢复作为数据管理的重要环节,其重要性不言而喻。在Linux系统中,数据备份和恢复也是必不可少的。下面将详细介绍Linux系统中的数据备份和恢复方法。一、备份tar命令tar命令是Linux系统中最基本的备份命令,可以将文件或目录打包成一个文件。它的基本语法如下:t

如何在麒麟操作系统上进行系统的备份和还原?麒麟操作系统是一款基于Linux的开源操作系统,因其稳定性和安全性而受到广泛关注和应用。在日常使用中,系统备份和还原是非常重要的操作,可以保护系统数据免受意外损坏或丢失。下面将介绍在麒麟操作系统上如何进行系统备份和还原的方法。一、系统备份在麒麟操作系统中,系统备份可以使用rsync命令来完成。rsync是一款用于数据

MySQL和Oracle:对于备份和恢复的速度和可靠性比较导言:MySQL和Oracle是两个常见的关系型数据库管理系统(RDBMS),它们在数据备份和恢复方面有着不同的机制和性能表现。本文将重点比较MySQL和Oracle在备份和恢复方面的速度和可靠性,并附上一些代码示例,以便更好地理解它们之间的差异和优劣势。备份性能比较:在备份方面,MySQL和Orac

如何在麒麟操作系统上进行文件管理和备份?麒麟操作系统是一款基于Linux的操作系统,广泛应用于中国政府和教育领域。在麒麟操作系统上进行文件管理和备份是一项重要的任务,它能够帮助我们更好地管理和维护重要的文件和数据。本文将为您介绍如何在麒麟操作系统上进行文件管理和备份,并附带代码示例。一、文件管理创建文件夹:在麒麟操作系统中,我们可以使用mkdir命令来创建文

MySQL是一个常用的关系型数据库管理系统,用于管理和存储大量的数据。在使用MySQL时,数据备份和还原非常重要,以确保数据的安全性和完整性。本文将介绍如何在MySQL中执行数据备份和还原,并提供代码示例。数据备份是指将数据库中的数据复制到另一个位置,以防止数据丢失或损坏。数据还原是指将备份的数据恢复到数据库中,以重新建立原始的数据库状态。一、数据备份:使用


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Dreamweaver CS6
Visual web development tools

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

WebStorm Mac version
Useful JavaScript development tools

Atom editor mac version download
The most popular open source editor

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.
