mysql5.7免安装版删除 下载 安装 配置 并将以前数据库的data文件复制进来的一些问题

前提,因为数据库连接除了本地的地址都需要设置一个密码,so因为一些特殊原因就把数据库里的data给打包,然后把数据库卸载了.删除以前的数据库进入命令行 --输入: sc delete mysql出现[SC] DeleteService 成功   删除成功! 删除mysql所在安装目录文件夹windows+R 开始运行里面输入regedit,打开注册表,对以下三行进行查看,有MySQL文件夹的对MySQL文件删除

HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Application/MySQLctrl+f 查找与mysql有关的东西全部删除了,卸载Mysql方面已完成。

1.下载

首先搜索mysql的官网https://dev.mysql.com/downloads/mysql/,按照下图顺序即可下载mysql5.7的免安装版

 2.安装

将解压下载下来的.zip文件将其解压到你想放置数据库的位置,我选择放在了D盘的Program Files中

3.配置

1.>配置环境变量:我的电脑右击属性-高级系统设置-环境变量-下面的系统变量-Path 点击添加 加上D:\Program Files\mysql-5.7.23-winx64\bin  ,mysql的bin目录(环境变量是告诉系统,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到哪些目录下去寻找

2>创建data文件

data是存放数据库文件的目录,管理员运行cmd命令窗口,找到你解压MySQL文件夹下的bin目录,输入 mysqld –initialize-insecure –user=mysql ,回车运行,data文件夹就有了

3>在bin的同级目录下创建my.ini()

内容如下
port = 3306
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB

主要是修改下面的两个路径为你自己的
basedir=D:\Program Files\mysql-5.7.23-winx64
datadir=D:\Program Files\mysql-5.7.23-winx64\data 

4.因为上面已经配置了环境变量了,所以直接win+r打开cmd,直接输入 mysqld -install,如果出现Service successfully installed 说明注册成功了,如想重新安装,执行mysqld –remove即可,再进行安装。

5.测试net stop mysql  关闭mysql服务,net start mysql  开启mysql服务 (如果这里提示找不指定路径,以上配置没问题的话可以尝试去查看修改注册表里的imagepath的路径,这只是一种方法

6.直接登录就行了,mysql -uroot -p密码为空

7.还原data文件里的数据

首先关闭mysql服务,如果命令关不了的话,在热呢与管理器里面的服务中找到mysql5.7然后关闭服务,
如果引擎类型是MyISAM, 数据文件则以”Table.frm””Table.MYD””Table.MYI””三个文件存储
如类型是InnoDB, 数据文件则存储在ibdata1文件中结构文件存在于table_name.frm中.
MyISAM类型的表。的数据库文件直接复制便可以使用
而使用“InnoDB”类型,这种类型的一个表在磁盘上只对应一个“*.frm”文件,不像MyISAM那样还“*.MYD,*.MYI”文件。
MyISAM类型的表直接拷到另一个数据库就可以直接使用,但是InnoDB类型的表却不行。解决方法就是:

同时拷贝innodb数据库表“*.frm”所在的文件夹和innodb数据“ibdata1”文件到合适的位置。启动MySQL的Windows服务
由于MySQL这样数据混杂的形式, 往往很容易让使用者在备份时忘记了备份InnoDB, 从而导致了上述错误.

意思就是说在数据库引擎类型为InnoDB时,拷贝数据文件的同时还需要拷贝ibdata1,于是把ibdata1也拷贝过去覆盖,重新启动mysql服务,可以了,

如果还不行,建议将目录下的ib_logfile*文件全部删除掉,重新启动mysql服务

8.数据出来之后终于可以中再次修改密码了,要注意5.7以后mysql.user表中没有了password字段,而是使用authentication_string来代替。

mysql -u root -p  ,use mysql

update mysql.user se tauthentication_string=password(“新密码”) where User=”test” and Host=”localhost”; 

flush privileges;

如果在flush privileges;这一步时报错了网上推荐的是缺什么表建什么表,我在前便已经修改密码完毕了,没管这个错误,直接退出了,重新启动,然后居然能用了。。。

mysql5.7免安装版出了很多问题,建议下载安装版的

猜你喜欢

转载自blog.csdn.net/qq_42735170/article/details/82180933
今日推荐