mysql升级mysql5.7.22记录
1. 软件下载地址
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
2. 解压放在一个目录中,此时解压后没有data文件和my.ini文件
3. 在目录下创建my.ini文件,内容如下
[mysqld]
port = 3306
basedir=D:\MySQL\MySQL Server 5.7.22
datadir=D:\MySQL\MySQL Server 5.7.22\data
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysql]
default-character-set=utf8
备注:红色部分是basedir是mysql的路径,datadir是mysql数据存放的路径
4. 配置环境变量:
在path后追加D:\MySQL\MySQL Server 5.7.22\bin
5. 管理员身份运行cmd,进入到mysql bin目录下
运行命令: (此命令会生成data目录,并且比较慢,耐等..)
mysqld --initialize
运行命令:(安装mysql服务)
mysqld -install
运行命令:(启动mysql服务)
net start mysql
--------------------------------------------------------------------------------------------------------------------------------
如果此时启动出错(没有报错的不用看),并且报的是 错误1053:服务没有及时响应启动或控制请求
解决方法:找到服务—MySQL—右键选择MySQL—属性—登录—此账户—用户名写你的服务器用户名,密码写你的服务器密码—应用—确定(先不要着急启动)
这个时候再选择MySQL—属性—将启动类型改为禁用—应用—确定
再次选择MySQL—属性—将启动类型改为自动—应用—确定
---------------------------------------------------------------------------------------------------------------------------------
6. 服务启动成功之后,进入mysql bin目录,输入mysql -u root -p 回车,
出现 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
发现密码错误,不要慌。这是安装时mysql默认给你生成密码(我找半天也没找到密码在哪)
解决方法:
(1) 关闭服务net stop MySQL
(2) 用安全模式打开:mysqld --skip-grant-tables
注:这个时候不要动,光标一直会闪,也不要关闭窗口,重新打开一个新的窗口,一样来到bin目录下,输入:mysql -u root -p
密码为空,直接回车,就可以进去了
(3) 然后输入命令:use mysql;
update user set authentication_string=password("123456") where user="root";
flush privileges;
(4) 最后重新登录一下。发现启动失败,原因是mysqld进程还开着呢,打开任务管理器,kill掉mysqld.exe进程。最后成功修改了密码。
7. mysql启动成功,密码也修改成功后,项目连接数据库启动失败,不要慌。
错误:[Err] 1682 - Native table 'performance_schema'.'session_status' has the wrong structure
这个问题出现的原因是我mysql升级版本的原因。
解决方法:只需要在root用户下执行以下命令即可
mysql_upgrade -u root -p --force
service mysql restart
8. 接下来可以正常使用了。