MySQL 5.7 安装配置(解决启动失败、修改密码失败问题)

一、问题描述:

最近重装Windows 10系统后准备升级软件版本,发现MySQL新版本为5.7.10,于是按照以前的操作方式安装(①解压ZIP;②安装Windows服务;③启动MySQL服务;③修改root默认空密码),然后先后发现了启动失败、修改密码失败等问题,遂整理以下操作以分享。(实测安装版没有此问题)

问题

启动失败,MySQL 服务无法启动、服务没有报告任何错误。
MySQL 5.7 安装配置(解决启动失败、修改密码失败问题)_第1张图片
启动失败,MySQL 服务无法启动、服务没有报告任何错误。
原因:MySQL 5.7.6 changelog:废弃了mysql_install_db,使用mysqld –initialize (formerly known as “mysqld –bootstrap,” now deprecated.)替代。
总结:MySQL将需要使用命令–initialize初始data,具体请看”操作步骤”。

问题

修改密码失败,Access denied for user ‘root’@’localhost’ (usering password: NO)。
这里写图片描述
修改密码,Access denied for user ‘root’@’localhost’ (usering password: NO)。
原因:MySQL 5.7.4 changelog:可以跳过 -skip-random-password 选项来默认生成随机密码。
MySQL 5.7.5 changelog:还是默认生成随机密码,但是选项修改为 –insecure。
总结:MySQL升级日中”提升MySQL安全性”将抛弃空”“密码初始方式,通过命令–initialize初始data并生成随机密码。

问题

在dos环境下使用net start mysql来启动服务,但是报错
MySQL 5.7 安装配置(解决启动失败、修改密码失败问题)_第2张图片
原因:因为当前用户的操作权限太低了。
解决方法:切换到管理员模式就可以启动了。所以我们要以管理员身份来运行cmd程序来启动mysql。

二、安装步骤:

下载链接:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-winx64.zip
1.解压至目录D:\Program Files\MySQL\mysql-5.7.10

2.复制新文件my.ini,并存入mysql的根目录下,新文件my.ini粘贴以下内容:

# For advice on how to change settings please see  
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html  
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the  
# *** default location during install, and will be replaced if you  
# *** upgrade to a newer version of MySQL.  
[mysql]  
# 设置客户端默认字符集  
default-character-set=utf8  

[mysqld]  
# 设置端口号  
# port=3306  
# 设置安装目录  
basedir=D:\Program Files\MySQL\mysql-5.7.10  
# 设置数据目录  
datadir=D:\Program Files\MySQL\mysql-5.7.10\data  
# 允许最大连接数  
# 即使连接数达到最大限制也会预留一个连接给管理员使用,如果设置太小可能会出现"Too many connections"错误  
max_connections=200  
# 服务端字符集,默认为8比特编码的latin1字符集  
character_set_server=utf8  
# 默认存储引擎,创建新表时使用  
default_storage_engine=INNODB  
# 当MySQL客户端或mysqld服务器收到大于max_allowed_packet字节的信息包时,将发出“信息包过大”错误,并关闭连接。  
# 对于某些客户端,如果通信信息包过大,在执行查询期间,可能会遇到“丢失与MySQL服务器的连接”错误。  
max_allowed_packet=64M  
# SQL模式  
# NO_BACKSLASH_ESCAPES  
# 禁用反斜线字符(‘')做为字符串内的退出字符。启用该模式,反斜线则成为普通字符。  
# NO_DIR_IN_CREATE  
# 创建表时,忽视所有INDEX DIRECTORY和DATA DIRECTORY指令。该选项对从复制服务器有用。  
# NO_ENGINE_SUBSTITUTION  
# 如果需要的存储引擎被禁用或未编译,可以防止自动替换存储引擎。  
# NO_FIELD_OPTIONS  
# 不要在SHOW CREATE TABLE的输出中打印MySQL专用列选项。该模式在可移植模式(portability mode)下用于mysqldump。  
# NO_KEY_OPTIONS  
# 不要在SHOW CREATE TABLE的输出中打印MySQL专用索引选项。该模式在可移植模式(portability mode)下用于mysqldump。  
# NO_TABLE_OPTIONS  
# 不要在SHOW CREATE TABLE的输出中打印MySQL专用表选项(例如ENGINE)。该模式在可移植模式(portability mode)下用于mysqldump。  
# NO_UNSIGNED_SUBTRACTION  
# 在减运算中,如果某个操作数没有符号,不要将结果标记为UNSIGNED。请注意这样使UNSIGNED BIGINT不能100%用于上下文中。  
# NO_ZERO_DATE  
# 在严格模式,不要将 ‘0000-00-00′做为合法日期。你仍然可以用IGNORE选项插入零日期。在非严格模式,可以接受该日期,但会生成警告。  
# NO_ZERO_IN_DATE  
# 在严格模式,不接受月或日部分为0的日期。如果使用IGNORE选项,我们为类似的日期插入'0000-00-00′。在非严格模式,可以接受该日期,但会生成警告。  
# ONLY_FULL_GROUP_BY  
# 不要让GROUP BY部分中的查询指向未选择的列。  
# PIPES_AS_CONCAT  
# 将||视为字符串连接操作符(+)(同CONCAT()),而不视为OR。  
# REAL_AS_FLOAT  
# 将REAL视为FLOAT的同义词,而不是DOUBLE的同义词。  
# STRICT_TRANS_TABLES  
# 为所有存储引擎启用严格模式。非法数据值被拒绝。后面有详细说明。  
# STRICT_TRANS_TABLES  
# 为事务存储引擎启用严格模式,也可能为非事务存储引擎启用严格模式。  
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES  

3.DOS进入目录bin执行命令(添加Windows服务):mysqld –install。
这里写图片描述
移除Windows服务命令(必须时使用):mysqld –remove。
这里写图片描述

4.继续执行命令(初始化MySQL”data”并获得初始密码):mysqld –initialize –console。
注意:必须记录该初始密码,以备修改密码
MySQL 5.7 安装配置(解决启动失败、修改密码失败问题)_第3张图片

5.继续执行命令(启动MySQL服务):net start mysql。
这里写图片描述

6.继续执行命令(修改MySQL默认密码为”root”):mysqladmin -u “root” -p password “root”。
注:此处需输入”步骤4”得到的初始密码。
这里写图片描述
7.完成。

三、升级程序:

如有好的建议或成功案例请留言,谢谢!

转自:https://blog.csdn.net/feleon/article/details/50612358

你可能感兴趣的:(MySQL)