MySQL需要升级到5.5.3以上版本才支持Laravel 5.4默认的utf8mb64
字符编码。因此就把MySQL升级了一下,期间还是遇到些小问题,记录一下以供参考。
升级准备
备份之前MySql目录下的
data
目录(数据库目录)。MySql官网MySQL 5.7.17版本压缩包。
管理员身份运行命令行,输入
net stop mysql
命令,停止mysql服务。输入
sc delete mysql
命令,删除mysql服务。卸载当前版本MySQL。
开始升级
解压MySQL 5.7.17压缩包到对应目录(示例:E:\Software\mysql-5.7.17-winx64
)。
配置
复制my-default.ini
到bin
目录命名为my.ini
(直接复制到根目录有时初始化会报错)。
my.ini
文件添加如下内容:
[mysqld]basedir = E:\Software\mysql-5.7.17-winx64datadir = E:\Software\mysql-5.7.17-winx64\dataport = 3306default-character-set = utf8sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [WinMySQLadmin]Server = E:\Software\mysql-5.7.17-winx64\bin\mysqld.exeuser = rootpassword =[client]default-character-set = utf8
注:sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
应放在[WinMySQLadmin]
和client
之上,否则会报错。且上述路径均需改为解压目录。
安装服务
管理员身份命令行,进入
bin
目录,输入mysqld --initialize
命令,初始化话MySQL。输入
mysqld --install
命令,安装MySQL服务。输入
net start msyql
命令,启动M有SQL服务。-
输入
此时要求输入密码,MySQL 5.7.17初始化话是创建了临时密码,在mysql -h localhost -u root -p
命令,登录MySQL。data
目录下以管理员名称命名的err
文件打开后,查看第一个Note,可以找到临时密码。2017-02-12T07:22:42.516404Z 1 [Note] A temporary password is generated for root@localhost: RqfpPhxhJ0%a
进入MySQL后,输入
alter user 'root'@'localhost' identified by '新密码';
设置密码。输入
flush privileges;
刷新。输入
quit;
退出,之后就可使用新密码登录MySQL。
导入数据
打开之前备份的data
目录,复制各数据库目录到新版MySQL的data
目录,即可使用之前的各数据库。
注:可能由于版本问题,数据不兼容无法使用,需要查看进行解决。