官网下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
下载版本:mysql-5.7.25-winx64.zip
背景:今天给我的老年联想本本加了4G内存,又换成了250G的固态盘,然后就有了重装win10系统、重装开发工具的过程,安装mySQL的时候出现以下几个问题,在此记录希望大家不要踩坑。
下载好zip文件后,解压放在你想放的地方,
我的mySQL放在这个路径下:D:\install\mysql\mysql-5.7.25-winx64,
默认没有生成my.ini文件,所以需要在根目录下新建文件my.ini(最终完整文档内容见最下方),保存后,
执行 mysql install,
(1) 以下是出现的问题描述:
执行 mysqld --initialize --console
--initialize specified but the data directory has files in it. Aborting.
不需要设置datadir存储数据,因为mysql会自动生成一个文件夹存放数据(和bin目录同级的data文件夹)。如果设置了,在data文件夹下生成了一些数据后,导致再次初始化产生报错如下:
图1
解决办法:
删除与bin同级的文件夹data下的所有文件(注意,如果有重要信息请提前备份),再执行以下命令:
mysqld --initialize --console
就不会报错了,初始化完成,会给root账号生成一个随机密码,如上图
执行命令: mysql -u root -p,回车后再输入上面的密码,就进入mysql环境
(2).当需要修改密码或执行其他操作时一直提示以下错误:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
解决办法如下:
1.SET PASSWORD = PASSWORD('新密码');
2.ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER; #(EXPIRE NEVER:密码永不过期)
3.FLUSH PRIVILEGES; #(更新权限:修改了root密码,在不重启mysql服务的情况下直接生效);
4.quit #退出,再使用新密码登录就OK了
注意:如果你修改了my.ini,为了使配置生效,需要重启mysql服务:
使用以下两条命令:
net stop mysql
net start mysql
最后附上我的完整的my.ini ,包含log日志地址设置:
[client]
port=3306
default-character-set=utf8
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#log
general-log=0
log-output=FILE
slow-query-log=1
long_query_time=1
slow_query_log_file="D:\install\mysql\log\log_slow.log"
log_error="D:\install\mysql\log\log_err.log"
#log="D:\install\mysql\log\logDora.log"
#开启查询缓存
explicit_defaults_for_timestamp=true
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=D:/install/mysql/mysql-5.7.25-winx64
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
#datadir=D:\install\mysql\sqldata
# 允许最大连接数
max_connections=1000
max_user_connections=500
# Set the SQL mode to strict
sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
# 服务端使用的字符集默认为utf8字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
collation-server=utf8_general_ci