转:http://blog.csdn.net/liuyifeng1920/article/details/53761280
本来电脑上有一个5.1版本的数据库, 项目开发的时候有个特殊的需求, 要用到mysql5.7新特性的 JSON类型字段存储东西. 于是开发阶段, 需要再在本机上搞一个5.7版本的.
废话不多说:
1 第一个数据库5.1正常安装.
2 下载mysql 5.7.19 压缩版,官网 http://dev.mysql.com/downloads/mysql/
3 解压路径后发现没有my.ini配置文件
4 所以这边我们需要手动配置my.ini 文件
这里需要注意的问题, 端口改为3307, 两个dir路径也要跟第一个mysql5.1 路径区分开. 并且修改my.ini 文件的时候用记事本修改不要用像EditPlus的文本编辑器,因为有可能添加了很多UTF-8的签名, 你是看不到的,但是启动的时候会报各种奇葩问题,[后人勿入坑啊], 所以最好不要用。然后这边在mysql的目录下面创建一个空data的文件夹(如果里面有东西请全部删除)
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3307
# 设置mysql的安装目录
basedir=D:\MySQL\mysql-5.7.19-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\MySQL\mysql-5.7.19-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
5 管理员权限运行cmd命令工具, 不管理员运行,容易报错:
mysqld: [ERROR] Fatal error in defaults handling. Program aborted!
6 通过cmd命令 cd 进入到你的5.7mysql的解压缩路径的bin目录里, 我的地址是:
d:
cd MySQL\mysql-5.7.19-winx64\bin
7 mysqld --initialize-insecure --user=mysql --console
(文档表明,使用-initialize生成随机密码,由于自己学习,使用-initialize-insecure生成空密码。默认帐号root,后面的--user=mysql不更改)
mysqld --install MySQL5.7.19
"D:\MySQL\mysql-5.7.19-winx64\bin\mysqld" --defaults-file="D:\MySQL\mysql-5.7.19-winx64\my.ini" mysql5.7.19*
9 然后返回cmd在bin下面直接启动mysql
net start mysql5.7.19;
启动完后, 需要登录 mysql -uroot -p -P3307 密码是空的(具体前面已经提到)
登录完成后
use mysql;
show databases;
然后设置密码
step 1: SET PASSWORD = PASSWORD('your new password');
step 2: ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
step 3: flush privileges;
查看最大允许传输包的大小
show VARIABLES like '%max_allowed_packet%';
注意:该值设置过小将导致单个记录超过限制后写入数据库失败,且后续记录写入也将失败。
查看连接时长
show variables like '%timeout';
紧接着查看mysql的编码(因为在my.ini设置了所有除了filesystem都为utf-8)
show variables like 'character_set_%';
最后呢登录上mysql的客户端连接