备注:此流程是针对windows下相同版本(5.7.20)的(不同版本之间的迁移可参考,不一定成功,本人没有测试)
1、首先做好数据备份,将原来的data文件夹(我的目录D:\company\mysql-5.7.20-winx64\data)复制备份
2、停止原先的服务
进入到MySQL的bin文件夹(我的目录D:\company\mysql-5.7.20-winx64\bin)
net stop mysql
3、如果与bin同级的目录先存在data文件夹,删除
4、执行初始化,这时会在bin同级目录下产生data文件夹及文件夹内文件
mysqld --initialize
5、修改配置文件my.ini中的属性,datadir 为新的数据保存目录
datadir = D:\company\mysql\data
6、将第四步中的data文件夹剪切到D:\company\mysql目录下
7、将原来备份的data文件夹中的文件复制到新的目录下,其中红框部分不需要复制,里面的文件夹表示一个数据库,其中ibdata1一定要复制,不然无法操作数据库中的文件
8、启动服务
net start mysql
如果未进行第6步,服务启动失败,服务没有报告任何错误。
9、获取初始化密码
MySQL data目录下 系统用户名.err日志文件中,这个密码是随机的,可通过关键字搜索
2018-05-16T02:14:04.306268Z 1 [Note] A temporary password is generated for root@localhost: x9auqfBAr!u#
10、修改密码
D:\company\mysql-5.7.20-winx64\bin>mysql -uroot -p
Enter password: ************
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 5.7.20
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> SET PASSWORD = PASSWORD('root');
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql>