zoukankan      html  css  js  c++  java
  • 升级 phpStudy 中 MySQL 版本至 5.7.17

    今天在往本地导数据表的时候老是报错:

    [Err] 1294 - Invalid ON UPDATE clause for '字段名' column

    报错的数据表字段:

    `字段名` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP

    同事说同一个 sql 文件他可以导成功。猜可能是数据库版本的问题,同事的是 5.6,我查了下本地的数据库版本是 5.5.53。网上查了一下,果然是版本的问题,5.5 和 5.6 在 TIMESTEMP 的行为上有所不同,5.6.5 之前的版本不支持多个CURRENT_TIMESTAMP 默认值。

    由于本地用的集成环境是 phpStudy 2016,没有找到升级 MySQL 版本的选项,所以自己升级一下。

    从官网上下载高版本的 MySQL :https://dev.mysql.com/downloads/file/?id=467269,选的版本是 5.7.17(后面才发现 5.7 版本的安装、系统表字段等又和之前的版本有所不同)。

     步骤:

    0x00

    备份原来 phpStudy 中 MySQL 安装目录

    0x01

    把下载的 MySQL 压缩文件解压至 phpStudy 下的 MySQL目录,复制 my-default.ini ,重命名为 my.ini。

    打开 my.ini,找到 #basedir 处编辑:

    basedir=D:/phpStudy/MySQL
    datadir=D:/phpStudy/MySQL/data

    0x02

    把 MySQL 安装路径添加至系统环境变量

    过程:计算机—>系统属性—>高级系统配置—>环境变量

    这里写图片描述

    选择PATH,在其后面添加: 你的mysql bin文件夹的路径 (如:我的是:D:Program FilesMySQLMySQL Server 5.6in ) 修改后的PATH为:

    PATH=…….;D:Program FilesMySQLMySQL Server 5.6in (需注意:1.必须在原有PATH后加英文输入下的分号;2.是追加,不是覆盖。)

    这里写图片描述

    0x03

    在 cmd 下进入 MySQL 的 bin 目录(我的是 D:/phpStudy/MySQL/bin),执行:

    mysqld --initialize

    初始化数据库

    0x04

    安装服务:

    mysqld -install

    启动服务:

    net start MySQL

    0x05

    此时登入 MySQL 报错:

    C:Usersdell>mysql -uroot -p
    Enter password: ****
    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

    尝试修改 root 用户密码:

    关闭服务net stop MySQL

    用安全模式打开,mysqld --skip-grant-tables

    这个时候,光标会一直闪。注意,不要动,打开另一个命令行窗口。

    登录 mysql -u root -p

    密码为空,直接回车;

    就可以进去了

    然后

    use mysql;

    (可能先前的版本密码的抬头是password,5.7.11是 authentication_string,可以select * from user,查看一下)

    (老版本)update user set password=password("123456") where user="root";

    (5.7.11)update user set authentication_string=password("123456") where user="root";


    最后

    刷新权限:

    FLUSH PRIVILEGES;

    重新登录。

    升级后随phpstudy启动

    命令行执行:mysqld --remove mysql

    然后 在phpstudy中服务管理器总能安装mysql服务

    此时查看 mySQL 版本:

    复制代码
    mysql> select version();
    +-----------+
    | version() |
    +-----------+
    | 5.7.17    |
    +-----------+
    复制代码
     
  • 相关阅读:
    jquery判断复选框是否选中
    jquery验证网址格式
    jquery右下角返回顶部
    thinkphp分页格式的完全自定义,直接输入数字go到输入数字页
    textarea出现多余的空格
    html渐隐轮播
    linux 路由 route
    ansible 自动化运维工具
    数据库 group by 后其他列的取值
    linux 磁盘io高排查
  • 原文地址:https://www.cnblogs.com/houdj/p/6482862.html
Copyright © 2011-2022 走看看