mysql5.7比之前的一个重大的区别就是在datetime的这个默认值上5.7的可以设置成current_timestamp,而之前的mysql(5.5)版本会报错,所以工作需要,得升级mysql
首先:关闭phpstudy,任务管理器里面关闭mysql进程
1.在mysql官网下载压缩包,我选取的是最新版的5.7.17连接:https://dev.mysql.com/downloads/mysql/
2.趁着下载的时间可以把之前的数据库数据备份下,我把 phpStudy 中 MySQL 文件夹可以重命名下,备用
3.把下载的 MySQL 压缩文件解压至 phpStudy 下的 MySQL目录,复制my-default.ini ,重命名为 my.ini。
打开 my.ini,找到 #basedir 处编辑:(我的安装在了C盘,路径根据phpstudy的安装路径选择)
basedir = C:\phpStudy7\MySQL
datadir = C:\phpStudy7\MySQL\data
4.下面执行在 cmd 下进入 MySQL 的 bin 目录(我的是 C:\phpStudy7\MySQL\bin),执行如下图:
(初始化数据库:mysqld --initialize)
补充:如果是timestamp的错误,在my.ini中添加
[mysqld]
explicit_defaults_for_timestamp=true
如果有[ERROR]
mysqld: Error while setting value
''ONLY_FULL_GROUP_BY,NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,'
to 'sql_mode'
在my.ini中添加[mysqld]
#sql_mode='NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,
ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,PIPES_AS_CONCAT,ANSI_QUOTES'
这一行前面没有井号:sql_mode='NO_AUTO_CREATE_USER'
(E:\phpstudy\MySQL\bin>mysqld --initialize --user=mysql --console)
如果是错误:initialize specified but the data directory has files in it.aborting
管理员身份运行CMD。这个在C盘systerm32文件下可以找到,或者百度管理员身份运行cmd
然后cd 至mysql下的bin,运行mysql install,然后就成功了
执行完后,重启phpstudy
5.此时登入 MySQL 报错:#1045 无法登录 MySQL 服务器,
打开 my.ini,找到 [mysqld],在下面添加:
skip-grant-tables(此参数用于忘记mysql密码)并保存
此时使用 root 账号,密码处按回车即可登录。
6.如果想增加密码,在无密码的情况下进去mysql命令行,找到mysql数据库的user表:修改密码:
update user set authentication_string='新密码' where user='root' ;
7.此时仍然用root密码仍登录不进去的话,在phpstudy修改密码,原来的密码为空