您现在的位置是:网站首页>>数据库>>mysql

使用SQLyog进行数据库迁移时报Invalid default value for 'update_time'解决方法

发布时间:2018-09-10 16:58:35作者:wangjian浏览量:978点赞量:0

    今天我准备将线上的数据库迁移到我的本地数据库,使用SQLyog进行迁移时报错:Invalid default value for 'update_time'

    原因:

    这是因为DATETIME类型的数据设置默认值为CURRENT_TIMESTAMP,只有5.6之后的版本才能使用CURRENT_TIMESTAMP作为DATETIME的默认值

    解决方法:

    升级mysql版本

    我的本地使用的是phpstudy,本文讲解的是phpstudy的mysql版本升级

    (1):

    从mysql官网上下载mysql5.7(这里并不一定要是5.7)  https://dev.mysql.com/downloads/file/?id=467269

    mysql下载网址:https://dev.mysql.com/downloads/mysql/

    (2):

    备份原来 phpStudy 中 MySQL 安装目录

    (3):

    复制一份my-default.ini,改名为my.ini、打开my.ini加上:

    basedir="E:/phpStudy/MySQL/"
    datadir="E:/phpStudy/MySQL/data/"

    这两项,这两个地址都改成自己对应的phpstudy里的mysql目录和数据库目录。

    (4):

    以管理员权限运行cmd进入mysql目录

    进入如下目录右击选择以管理员身份运行

    image.png

    进入mysql下的bin目录

    image.png

    (5):

    直接运行下面两句命令安装mysql


    mysqld --initialize
    mysqld -install

    在执行mysqld -install时可能回报以下错误:

    The service already exists

     解决方法:

    输入sc query mysql,查看一下名为mysql的服务:

    命令sc delete mysql,删除该mysql ;

    继续安装mysqld -install,就能成功

    (6):

    安装成功后mysql要进行初始化

    在命令行输入:

    mysql -u root -p

    在这时候他会让你输入密码,找到mysql/data目录下已err结尾的文件,打开

    image.png

    找到如上出可以看到初始密码

    进入mysql后输入如下命令进行密码初始化


    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
    FLUSH PRIVILEGES; #刷新权限

    离开mysql后执行mysql_upgrade -u root -p进行数据字典升级

    到此mysql升级成功

    (7):

    打开phpmyadmin点击用户菜单会发现如下错误

    image.png

    这是由于phpmyadmin的版本与mysql版本不兼容

    进入phpmyadmin官网下载最新的phpmyadmin https://www.phpmyadmin.net/


    将下载下来的phpmyadmin覆盖phpstudy原始的phpmyadmin


    复制一份config.sample.inc.php将其改为config.inc.php进行如下配置:


    $cfg['Servers'][$i]['auth_type'] = 'cookie';
    /* Server parameters */
    $cfg['Servers'][$i]['host'] = 'localhost';
    $cfg['Servers'][$i]['connect_type'] = 'tcp';
    $cfg['Servers'][$i]['compress'] = false;
    /* Select mysql if your server does not have mysqli */
    $cfg['Servers'][$i]['extension'] = 'mysqli';
    $cfg['Servers'][$i]['AllowNoPassword'] = false;

    打开phpmyadmin可以看到成功

    image.png


0 +1