Windows(x86,64bit)升级MySQL 5.7.17免安装版

MySQL须要升级到5.5.3以上版本才支持Laravel 5.4默认的utf8mb64字符编码。所以就把MySQL升级了一下,期间仍是遇到些小问题,记录一下以供参考。mysql

升级准备

  1. 备份以前MySql目录下的data目录(数据库目录)。sql

  2. MySql官网下载MySQL 5.7.17版本压缩包。数据库

  3. 管理员身份运行命令行,输入net stop mysql命令,中止mysql服务。ide

  4. 输入sc delete mysql命令,删除mysql服务。ui

  5. 卸载当前版本MySQL。编码

开始升级

解压MySQL 5.7.17压缩包到对应目录(示例:E:\Software\mysql-5.7.17-winx64)。命令行

配置

复制my-default.inibin目录命名为my.ini(直接复制到根目录有时初始化会报错)。code

my.ini文件添加以下内容:文档

[mysqld]
basedir = E:\Software\mysql-5.7.17-winx64
datadir = E:\Software\mysql-5.7.17-winx64\data
port = 3306
default-character-set = utf8
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

[WinMySQLadmin]
Server = E:\Software\mysql-5.7.17-winx64\bin\mysqld.exe
user = root
password =

[client]
default-character-set = utf8

注:sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 应放在[WinMySQLadmin]client之上,不然会报错。且上述路径均需改成解压目录。get

安装服务
  1. 管理员身份命令行,进入bin目录,输入mysqld --initialize命令,初始化话MySQL。

  2. 输入mysqld --install命令,安装MySQL服务。

  3. 输入net start msyql命令,启动M有SQL服务。

  4. 输入mysql -h localhost -u root -p命令,登陆MySQL。
    此时要求输入密码,MySQL 5.7.17初始化话是建立了临时密码,在data目录下以管理员名称命名的err文件打开后,查看第一个Note,能够找到临时密码。

    2017-02-12T07:22:42.516404Z 1 [Note] A temporary password is generated for root@localhost: RqfpPhxhJ0%a
  5. 进入MySQL后,输入alter user 'root'@'localhost' identified by '新密码';设置密码。

  6. 输入flush privileges;刷新。

  7. 输入quit;退出,以后就可以使用新密码登陆MySQL。

导入数据

打开以前备份的data目录,复制各数据库目录到新版MySQL的data目录,便可使用以前的各数据库。

注:可能因为版本问题,数据不兼容没法使用,须要查看官方文档进行解决。