https://blog.csdn.net/indexman/article/details/80291537
https://blog.csdn.net/weidong_y/article/details/81660958
不同版本之间卸载与重装,非常重要的一点注册表的命令路径修改;当卸载完5.6,在此安装5.7的时候,一定要先去注册表修改路径为5.7mysql的命令路径
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices 找到对应的服务名,修改ImagePath
E:programmysql-5.7.16-winx64in>net start mysql5.7
mysql-5.7 服务正在启动 .
mysql-5.7 服务无法启动。
服务没有报告任何错误。
请键入 NET HELPMSG 3534 以获得更多的帮助。
查看报错.err的日志,提示 mysql5.7: Table 'mysql.plugin' doesn't exist
原因:
mysql在启动服务时会去找一些系统表,例如:
mysql5.7: Table 'mysql.plugin' doesn't exist
这个就是启动时候日志的报错(如果你已经创建了data文件夹,在data文件夹的用户.err文件,例如我的就是:Dylan.err)。其实我们在创建服务后缺少了一步,就是初始化mysql。
解决方案:
1.在安装目录创建data文件夹(如果已有,请删除里面所有文件),用于存放mysql初始化数据文件。
2.执行初始化mysql,
E:programmysql-5.7.16-winx64in>mysqld --initialize
又提示错误:
2019-12-01T06:49:11.067143Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-12-01T06:49:11.069662Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.
2019-12-01T06:49:11.070792Z 0 [ERROR] Aborting
可以看到是由于data目录下面有文件,初始化失败,需要删除data下的所有文件,然后再初始化,删除后重新初始化,成功
四、修改数据库密码
在刚刚 my.ini 文件中,把下面这句话的注释给释放掉。
skip-grant-tables : 这句代码,是让数据库不需要密码也能登录。
重启 mysql
net stop mysql
net start mysql
登录 MySQL,因为我们已经取消了密码验证,所以随便输入什么东西都能进入。
mysql -u root -p
修改密码:
mysql> use mysql;
mysql> update user set authentication_string=password("123456") where user='root';
mysql> flush privileges; # 刷新权限
注意密码字段名 5.7 版本的是 authentication_string,之前的为 password。
修改完后,记得注释掉 my.ini 中的 skip-grant-tables 参数,重启 MySQL 服务,就可以用你设置的密码登录了。
感谢博主文章