之前一直使用mysql安装版,按照自动指引设置好参数一般就没有问题了,最近下了一个免安装版来用,解压之后按照网上的设置发现有好多问题,导致试了好多种方案才解决,记录如下:
版本是mysql-5.7.19-win64.解压后放到本地文件夹D:\Program Files\mysql下。在主目录即D:\Program Files\mysql\mysql-5.7.19-winx64下创建my.ini文件,内容如下:
[client]
port=3306
default-character-set=utf8
[mysqld]
\#basedir代表自己MySQL的安装根目录
basedir = D:\Program Files\mysql\mysql-5.7.19-winx64
\#datadir代表自己MySQL的数据库保存的目录,如果没有在MySQL安装的根目录下新建一个data文件夹
datadir = D:\Program Files\mysql\mysql-5.7.19-winx64\data
\#port代表端口号
port = 3306
character-set-server=utf8
character-set-filesystem = utf8
sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER
explicit_defaults_for_timestamp=true
[mysql]
default-character-set=utf8
然后依次执行
mysqld --initialize-insecure
mysqld –install
net start mysql
打开data目录下.err文件(如果ini文件中有skip-grant-tables,则密码默认为空),搜索password,可以看到分配了一个临时密码。
输入mysql –u root –p,回车后输入该临时密码即可连接数据库。接着输入set password for root@localhost = password(“123”)
即可修改密码。重新登录,连接后输入show variables like “%char%”可以看到数据库的编码格式。大部分应该是utf8,说明格式是正确的。
如果在ini文件中加了skip-grant-tables则默认密码为空,之后要想修改密码则不行。需要依次输入:
set global read_only=0;
flush privileges;
set global read_only=1;
flush privileges;
然后才能更改密码。
任何一步出错,则重新设置。先停止服务:net stop mysql
,接着卸载服务:sc delete mysql
,然后删除data目录。恢复到初始状态重新设置。
可参考http://blog.csdn.net/zhangwei408089826/article/details/76989158.