mysql安装教程5.7报错_MySQL5.7版本安装教程-踩坑总结下载
MySQL下载地址
选择下载64位(看⾃⼰电脑是32位还是64位)
点击下载之后,它会让你登录,没有Oracle账户,跟着它的步骤注册⼀个就好了。
安装
打开下载好的压缩包解压到你的某⼀⽬录下,这⾥我放到了D:\MySQL下
如上图所⽰,在你解压的⽂件夹下是没有my.ini这个配置⽂件的,需要⾃⼰创建并⽤记事本打开,把下⾯这些代码粘贴复制进去
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端⼝
port = 3306
# 设置mysql的安装⽬录
basedir=D:\MySQL\mysql-5.7.16-winx64
# 设置mysql数据库的数据的存放⽬录
#datadir=D:\MySQL\mysql-5.7.16-winx64\data
# 允许最⼤连接数
max_connections=200
# 服务端使⽤的字符集默认为8⽐特编码的latin1字符集
character-set-server=utf8
mysql下载之后是个文件夹# 创建新表时将使⽤的默认存储引擎
default-storage-engine=INNODB
我在安装的时候,了⼀个教程,教程中上⾯的#datadir=D:\MySQL\mysql-5.7.16-winx64\data这句代码是没有注释掉的,于是我就在之后的安装中遇到了⿇烦。
填坑
⾸先配置默认⽂件
当我没有注释掉那句代码时,也就是这样⼦配置的
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端⼝
port = 3306
# 设置mysql的安装⽬录
basedir=D:\MySQL\mysql-5.7.16-winx64
# 设置mysql数据库的数据的存放⽬录
datadir=D:\MySQL\mysql-5.7.16-winx64\data
# 允许最⼤连接数
max_connections=200
# 服务端使⽤的字符集默认为8⽐特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使⽤的默认存储引擎
default-storage-engine=INNODB
接下来开始安装
安装并启动
直接搜cmd,右键->以管理员⾝份运⾏
进⼊bin⽂件⽬录下
接下来输⼊安装、启动命令
mysql install
net start mysql
出现如下图问题
⽆法启动却⽆报错,在计算机管理服务⾥也⽆法⼿动启动。有⼤神说可以执⾏
mysqld --console
命令查看错误信息,如下图,意思是说没有data⽂件,⽽在my.ini配置⽂件中代码⾥设置了(datadir=D:\MySQL\mysql-5.7.16-
winx64\data)
所以我就⾃⼰跑去新建了个data⽂件夹,再启动然⽽依旧错误漫天飞,Excuse me?
最后终于到靠谱的答案,data⽂件是不需要⾃⼰配置的,先删除⾃⼰⾃作聪明的data⽂件,然后注释掉my.ini中的datadir代码,配置环境变量然后执⾏
mysqld --initialize
即可⾃动⽣成data⽂件,这个时候再执⾏
net start mysql
命令,可以看到MySQL启动成功
登录MySQL
输⼊命令 mysql -uroot -p 回车,输⼊密码,按理说初次登录是没有密码的,直接回车即可登录,然⽽事实上,在执⾏ mysqld --initialize 命令时它不仅⾃动创建了data数据,还随机分配了密码,在你的⽂件中搜索 .err后缀的⽂件,以记事本⽅式打开,你会看到下图
对,这就是你的密码,每个⼈不⼀样,看你⾃⼰的,输⼊进去登录就可以了。接下来你想进⾏⼀些操作,发现它会提⽰你,需要先重置密码。那么接下来再看重置密码的坑。
重置密码
在⽹上查⽅法,基本上都是如下步骤:
然⽽我输⼊命令结果是这样⼦的
正确的打开⽅式是⾸先在my.ini配置⽂件的[mysqld]下⾯加上
[mysqld]
explicit_defaults_for_timestamp = true
然后输⼊如下命令,回车后会⼀直停⽌,然后打开另⼀个cmd命令窗⼝
mysqld --default-file="D:\MySQL\mysql-5.7.16-winx64\my.ini" --skip-grant-tables
mysql -u root
输⼊更改密码的语句
use mysql
UPDATE mysql.user SET password=PASSWORD("lyymysql") WHERE User='root';
然⽽结果如图
所以查看数据库,发现5.7版本⾥的user表⾥已经没有了password这个字段
正确姿势:
update mysql.user set authentication_string=PASSWORD('lyymysql') WHERE User='root'; flush privileges
exit
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论