MySQL 5.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
# 创建新表时将使用的默认存储引擎
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
吁~这下终于可以启动登录MySQL 了
这一上午踩坑踩得真呀么欢快~
小提示:以上命令中的路径都要改为自己的路径,要不然是不对的。如果有什么疑问可以在下方评论。
MySQL 5.7版本安装教程-踩坑总结的更多相关文章
- linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦
linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(一) 一.Linux下安装MySQL 1.下载 下载地址:http://dev.mysql.co ...
- ubuntu 下安装docker 踩坑记录
ubuntu 下安装docker 踩坑记录 # Setp : 移除旧版本Docker sudo apt-get remove docker docker-engine docker.io # Step ...
- sqlserver安装和踩坑经历
sqlserver安装和踩坑经历 下载 下载 安装 大致是按照这个来的 安装教程 出错 windows系统安装软件弹出"Windows installer service could not ...
- linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(二)
linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(二) 安装apache web容器 . yum方式安装apache 注意apache在linux ...
- linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(三)
linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦(三) 安装PHP 1.yum方式安装PHP方法同安装apache一样传送门:linux cent ...
- MySQL 8.0.20 安装教程图文详解(windows 64位)
MySQL 8.0.20 安装教程图文详解(windows 64位) 更新时间:2020年05月09日 15:09:04 转载 作者:瘦肉粥不加糖 这篇文章主要介绍了MySQL 8.0. ...
- MySQL Connector/NET 使用小结(踩坑之路)
背景描述 根据项目的需要,需连接MySQL获取数据. 首先,先了解一下项目的情况: 之前的代码是C#编写的的, 运行时:.NETFramework3.5. 由于项目已经部署上线,因此不能升级运行时,这 ...
- MAC下STF安装及踩坑
[Mac OS X]brew: command not found ruby -e"$(curl -fsSL https://raw.githubusercontent.com/Homebr ...
- OpenCV+Qt+CMake安装+十种踩坑
平台:win10 x64+opencv-3.4.1 + qt-x86-5.9.0 + cmake3.13.4 x64 OpenCV+Qt+CMake安装,及目前安装完后打包:mingw32-make时 ...
随机推荐
- java-成员变量的属性与成员函数的覆盖
java中在多态的实现是通过类的继承或者接口的实现来完成的. 在类继承或者接口实现过程中就会涉及到成员属性以及成员函数的重写,需要注意的是,成员函数的重写是直接覆盖父类的(继承中),但是成员变量重写是 ...
- Chrome退出全屏问题
最近做了一个号称很炫的B/S展示软件,展示所用浏览器为Google Chrome. 要求展示时全屏,但是页面要有退出全屏按钮(液晶屏没有键盘). 搜索实现方式几乎前篇一律,即两个JS函数一个实现全屏一 ...
- php的各种配置
问题:1.如果去掉URL_MODEL=1时的index.php第一步:把Apache配置文件中的LoadModule rewrite_module modules/mod_rewrite.so 取消注 ...
- Nodejs简单验证码ccap安装
首先要求: node npm 安装时如果提示npm-gyp失败,可进行如下操作: 确认python版本2.7+ 安装npm install ccap 如果失败,尝试npm install ccap@0 ...
- 【PHP】 foreach循环中变量引用的一道面试题
$a = array('a','b','c'); foreach($a as &$v){} foreach($a as $v){ } var_dump($a); 现在.不要打开浏览器,猜测一下 ...
- memcached 入门
memcached 是什么? Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载. memcached 能够做些什么? 适用于大型网站,处理千万及的数据,而且 ...
- Servlet&JSP基础
Servlet JSP JSP四种基本语法: JSP注释<%--注释内容--> JSP声明<%!变量.函数%> JSP表达式<%= ...
- css3多行省略号
-webkit-line-clamp 概述: -webkit-line-clamp 是一个 不规范的属性(unsupported WebKit property),它没有出现在 CSS 规范草案中. ...
- time返回当前的 Unix 时间戳而$_SERVER["REQUEST_TIME"]得到请求开始时的时间戳
time():返回当前的 Unix 时间戳 $_SERVER["REQUEST_TIME"]:得到请求开始时的时间戳,可以用来判断完成整个php处理的时间
- swift官方文档中的switch中case let x where x.hasSuffix("pepper")是什么意思?
在官方文档中,看到这句.但不明白什么意思. let vegetable = "red pepper" switch vegetable { case "celery&qu ...