MySQL 5.7.33 安装与升级问题及在那找初始密码:

由于之前电脑上安装的MySQL版本是比较老的了,大概是5.1的版本,不支持JSON字段功能。而最新开发部门开发的的编辑器产品,使用到了JSON字段的功能。 因此需要升级MySQL版本,升级的目标版本是MySQL 5.7.30(虽然最新版本已经到8.x,但是5.7基本够用了)。 发现在升级安装过程中,会有一些坑,所以使用本文记录一下。

卸载老版本

首先需要卸载老的版本,卸载其实也挺简单,只需要移除MySQL服务即可,首先打开CMD,然后cd到MySQL的bin目录,然后输入下面的命令移除MySQL服务:

mysqld --remove mysql
//需要注意的是: “msyql” 是服务名称,安装的时候如果没有指定服务名称,
//默认名称是MySQL(windows下不区分大小写);
// 如果安装的时候指定了名称,上面的名称需要修改为该指定的名称。

remove msyql

需要注意的一点是,我们删除了MySQL服务之后,有可能在windows的服务的列表里面还有,保留在哪儿也没啥影响,但是如果你又洁癖,一定要删除,就需要去删除注册表中对应键,参考下图。当然对于我们升级来说,后续还需要安装windows服务,可以直接覆盖。

注册表的图

然后删除老的MySQL相关文件夹,以及删除相关的环境变量的配置。

需要注意的是,如果数据文件和MySQL程序在一个文件夹下,需要保留数据

安装5.7.30版本

接下来就是安装5.7.30版本,第一步是下载。

下载MySQL

下载地址是:https://dev.mysql.com/downloads/mysql/
点击上面链接,进入到下载页面,由于最新的版本是8.x,所以默认是8.x的版本。可以通过点击“Looking for the latest GA
version ”选择版本,然后下载免安装版本:

下载

解压MySQL

下载完成后,解压到你想要安装的目录,比如我的目录是:
D:\Program Files (x86)\mysql-5.7.30-winx64

目录

配置环境变量

在系统变量path后面追加D:\Program Files (x86)\mysql-5.7.30-winx64\bin,如图所示。

环境变量

创建配置文件my.ini

5.7.30版本的安装包默认是不带配置文件my.ini的。所以需要创建自己创建一个my.ini的文件。手动创建my.ini文件,然后输入如下内容:

1
7
[mysql]

设置mysql客户端默认字符集

default-character-set=utf8

[mysqld]

设置3306端口

port = 3306

设置mysql安装目录

basedir=D:\Program Files (x86)\mysql-5.7.30-winx64

设置mysql数据库的数据存放目录

datadir=D:\Program Files (x86)\mysql-5.7.30-winx64\data

运行最大连接数

max_connections=200

服务端使用的字符集默认为8比特编码的latin1字符集

character-set-server=utf8

参加新表时将使用的默认存储引擎

default-storage-engine=INNODB
此处会有一些坑,需要避免。

my.ini注意事项一

my.ini必须保存为ANSI格式(配置文件默认就是是ANSI编码格式,可能会不小心保存为其他格式,比如UTF-8),否正会出现后续的服务不能启动的情况。 如果你不确定my.ini是什么格式,可以另存为:

格式ANSI

my.ini注意事项二

如果是从低版本升级到5.7的版本,可能为了保留之前的配置,就直接把之前的配置文件拷贝过来。这个时候就要注意了,因为以前很多低版本的参数,已经不适合高版本的。如果不修改过来,就会导致后续的服务启动失败。

比如笔者遇到的一个导致错误的参数是:

1
2
#table_cache=256 // 低版本的
table_open_cache=256 // 高版本的
如果一定要保留老版本的配置,又对于新版本的参数修改不是很熟悉,那么可以再配置文件中把日志功能假设,这样再报错的时候,可以通过查看日志了解详情。 如下配置日志路径即可:

log_error=D:/mysql-5.7/error.log

然后启动失败后,可以通过日志查看报错,比如:

错误日志

更多可能的错误参数:

unknown variable ‘key-buffer=256M’ //去掉改项即可。

unknown variable ‘table-cache=512’ //修改为table_open_cache即可。

unknown variable ‘thread-concurrency=8’ //去掉改项,5.7已结废弃。

windows 服务启动失败,不会把错误详情标识出来,只会简单说一句服务启动失败。 只能通过配置日志文件来查看。

服务无法启动

安装MySQL服务

最重要的一步就是安装MySQL服务。 首先进入cmd界面,CD到MySQL的bin目录(注意此处一定要到bin目录下去执行),执行如下命令:

1
mysqld --install [服务名称,默认是MySQL]
截图如下:

安装服务

执行命令后,会提示服务安装成功。

注意事项一

需要注意的是,有可能出现Install/Remove of the Service Denied! 的提示错误。
原因:普通用户模式权限下的cmd安装mysql会出现这样的报错提示。通过管理员模式运行cmd即可:

管理员身份运行cmd

其他步骤如果出现没有执行权限的情况,也都请用管理员省份运行即可。

注意事项二

有些电脑会出现找不到MSVCP120.dll的错误:

错误

这种错误是由于未安装 vcredist 引起的
下载 vcredist 地址:https://www.microsoft.com/zh-CN/download/details.aspx?id=40784
安装,位置默认即可,安装成功之后,重新安装服务即可。

初始化MySQL

MySQL5.7是不带data目录的,所以需要初始化MySQL,生产data目录,也比较简单,执行如下命令即可:

1
mysqld --initialize-insecure --user=mysql
需要注意的是,有的文章介绍的是此处用 “mysqld --initialize”, “mysqld --initialize-insecure”和 “mysqld --initialize”的区别在于前者会创建一个空密码,而后者会创建一个随机密码。 因此用 “mysqld --initialize”,最好加上 “–console”,可以把随机密码打印出来(注意 “–console”仅限于windows)

console

console

–user=msyql 主要用于在linux或者unix系统下给与把data目录授权给mysql账号,在windows 下可以不必使用,带上也无所谓。

数据初始化参考链接:https://dev.mysql.com/doc/mysql-installation-excerpt/5.7/en/data-directory-initialization.html

初始化完成后,会生成data目录。

注意事项一

如果初始化出现错误:“–initialize specified but the data directory has files in it. Aborting. ” 那是因为你可能手动创建了data目录,并且里面包含了文件(比如升级可能这样操作),此时要做的就是删除data目录即可,至于升级,可以后续考虑。

此时说的data目录,是指 my.ini文件里面 指定的目录 ,未必是mysql安装文件下的目录:
datadir=D:\Develop\MySQL\mysql-8.0.12-winx64\data

启动MySQL服务

windows下启动MySQL服务,可以使用如下命令即可:

net start MySQL

image.png

设置MySQL服务密码

使用mysqladmin可以设置密码。启动MySQL服务之后,输入如下命令:

密码

输入老的密码(通过前面操作,老密码为空),然后输入新的密码,确认新的密码,即可设置成功。

注意事项一

如果前面初始化的时候未初始化未空密码,又不小心忘记了初始化密码,会出现下面的问题,无法登陆及修改密码:
“Access denied for user ‘root’@‘localhost’”

通过如下步骤解决:

添加skip-grant-tables

再配置文件my.ini中添加skip-grant-tables:

image.png

重启MySQL服务

先停止MySQL服务,然后再启动MySQL服务,即可:

image.png

修改密码

首先登陆mysql,此时不需要密码,如下:

登陆

通过sql语句修改密码,首先 use mysql ;然后update 更新密码:

修改密码

然后退出mysql即可。

删除skip-grant-tables 重启MySQL服务

首先从my.ini中删除skip-grant-tables ,然后 net stop mysql, net start mysql 重启服务。

MySQL老数据升级到5.7

要升级老数据,如果是从5.x版本升级上来,基本上只需要把相关的数据文件拷贝到data文件夹下。需要注意的是,如果使用了 innodb,还需要把“ibdata”等文件拷贝过来。 否正会报表不存在的情况:

error: 1146: Table ‘a_content’ doesn’t exist

innodb是MYSQL数据库一种流行的数据库引擎,支持事务(行级),ibdata用来储存文件的数据,而库名的文件夹里面的那些表文件只是结构而已,由于新版的mysql默认试innodb,所以ibdata1文件默认就存在了,少了这个文件有的数据表就会出错。

如果升级过程中,存在数据损坏,可以使用repair命令进行修复:

repair table tablename

正常经过上述操作,就可以了,如果还有问题,可以尝试使用升级命令mysql_upgrade对数据进行升级(也建议使用改命令升级,不然后续出问题,可能会不好定位)
https://dev.mysql.com/doc/refman/5.7/en/mysql-upgrade.html

1
2
//升级mysql,mysql_upgrade检查不兼容的表,更新grant表;
mysql_upgrade -uroot -p
升级速度具体看data目录的大小情况而定。

mysql 5.7 初始密码是多少

下载了MySql 最新版本,安装的过程中,发现了很多新特性
1.data目录不见了
在进行my-default.ini配置的时候
(需要配置 # basedir = C:/Program Files/MySQL/MySQL Server 5.7.11

datadir = C:/Program Files/MySQL/MySQL Server 5.7.11/data)

细心的同学会发现,/data这个目录不存在,但是这个data目录可不是我们手动创建的,根据官方指南
C:/>bin/mysqld --initialize
C:/>bin/mysqld --initialize-insecure
cmd中输入这两个代码中的一个就可以自动在对应的目录下生成啦
(前提是你的path配置正确,比如mysql的路径,如果提示net命令不是内部命令,就在path中增加“C:/Windows/System32”即可)
2.随机生成了一个random string 作为密码
在没有启动前,root的密码是ABC123xyz
随机生成的密码在日志文件中可以查看,没错就是在initialize命令下生成的那个data文件
使用记事本打开Acer.err
找到
“2016-02-12T15:35:00.026880Z 1 [Note] A temporary password is generated for root@localhost: Ux<<lCbrr8&d”
Ux<<lCbrr8&d
这个就是我们要找的密码了
登陆成功:
3.修改密码的指令
果然新版本中修改密码的指令也不是那么好找的。。
在成功连接之后,使用sql语句修改,以往未登录状态下的修改方法已经不能使用啦~~
mysql> ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘new_password’;
修改成功:

MySQL 5.7 安装后默认登录密码在哪?

  1. MySQL 历史版本安装地址
  2. MySQL 5.7 默认安装目录结构
  3. 初始化MySQL 5.7
  4. MySQL 历史版本安装地址

MySQL 历史版本安装地址 : http://ftp.ntu.edu.tw/MySQL/Downloads/MySQL-5.7/

  1. MySQL 5.7 默认安装目录结构

MySQL 5.7 默认安装完成后会有如上图所示的目录结构,值得注意的是最开始并没有data 文件夹。

出于安全考虑,MySQL 5.7 默认安装完成后,在没有初始化之前是没有办法登录的。

  1. 初始化MySQL 5.7

打开cmd命令行,进入到C:\Program Files (x86)\MySQL\MySQL Server 5.7\bin 文件夹下,执行如下命令:
mysqld --initialize
1
命令完成后我们可以看到多了这样一个data 文件夹

打开data文件夹,我们可以看到一个叫做 XX-80.err 文件,

用notepad++ 或者其他多文本编辑器打开它,可以看到如下内容
2019-07-12T22:24:42.156000Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-07-12T22:24:55.985000Z 0 [Warning] InnoDB: New log files created, LSN=45790
2019-07-12T22:24:58.032000Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2019-07-12T22:24:58.128000Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: e1a601c9-a4f3-11e9-b32f-1c1b0d1c5e29.
2019-07-12T22:24:58.135000Z 0 [Warning] Gtid table is not ready to be used. Table ‘mysql.gtid_executed’ cannot be opened.
2019-07-12T22:24:58.148000Z 1 [Note] A temporary password is generated for root@localhost: zBty88eNuL!*
1
2
3
4
5
6
然后我们可以在日志里找到

A temporary password is generated for root@localhost: zBty88eNuL!*
1
这个就是随机生成了一个密码。
当尝试登录的时候,可以会提示这样的错误
故障: ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’(10061)
原因:这是因为我们还没有启动MySQL监听服务
打开cmd命令行,进入到C:\Program Files (x86)\MySQL\MySQL Server 5.7\bin 文件夹下,执行如下命令:
mysqld -install
1
看到如下内容说明安装成功

命令行输入services.msc 服务管理界面,找到MySQL 服务,然后右键启动即可。

也可以在cmd里面输入以下命令启动:
net start mysql
1
然后输入刚才找到临时密码输入即可

点击确定,第一次修改会提示让你修改密码你修改下即可。
https://blog.csdn.net/hadues/article/details/95710844

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值