安装mysq 5.7.20 解压版遇到的坑(推荐)

下面是关于安装MySQL 5.7.20 解压版所遇到的坑以及解决方案的完整攻略:

1. 下载与解压

首先,我们需要先从MySQL官网下载MySQL 5.7.20的压缩包版本,具体网址为:https://dev.mysql.com/downloads/mysql/5.7.html。选择“MySQL Community Server”后,可以根据操作系统进行选择,并选择“Download”下载对应的压缩包。

下载完成后,解压MySQL压缩包,得到一个名为“mysql-5.7.20”的文件夹。

2. 创建my.ini文件

mysqld需要从my.ini文件中读取MySQL的一些配置信息,默认情况下是不存在该文件的。因此需要将“mysql-5.7.20”文件夹下的“my-default.ini”文件进行复制,然后改名为“my.ini”。

3. 修改my.ini文件

打开刚刚复制后的“my.ini”文件,在最后加上以下内容:

[mysqld]
port=3306
basedir=D:/mysql-5.7.20
datadir=D:/mysql-5.7.20/data
max_connections=200

以上参数可以根据自身需求做相应的修改,如修改mysql存放路径,监听的端口和最大连接数等等。

4. 安装mysql服务

打开CMD,切换到MySQL根目录下的bin目录下,执行以下命令:

mysqld --install

提示“Service successfully installed”即为成功安装服务。

5. 初始化MySQL

还是在bin目录下,使用以下命令初始化MySQL:

mysqld --initialize --console --log-error=my_error.log --explicit_defaults_for_timestamp

其中,--console和--log-error参数可以看到MySQL初始化的日志信息和具体位置,--explicit_defaults_for_timestamp参数则是显式设置时间戳的默认值为空,避免在查询中出现错误。

此时,MySQL的系统表(数据目录/xampp/mysql/data目录)已经生成完成。

6. 启动MySQL

初始化过程结束后,使用以下命令启动MySQL:

net start mysql

如果启动成功,在CMD中会提示“MySQL服务正在启动...... MySQL服务已经启动成功。”

7. 修改root用户密码

此时再进入MySQL会发现root用户是没有密码的。因此,我们要登录到MySQL来修改root用户的密码。可以使用以下命令进行登录:

mysql -u root -p

回车之后,会让你输入密码,此时就可以输入空密码了。接着我们需要设置密码,可以使用以下命令:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('up123456');

上述命令将root用户的密码修改为“up123456”。

8. 验证MySQL安装是否成功

最后,我们尝试使用Navicat或者其他MySQL的客户端连接一下自己的MySQL是否能够正常连接即可。

示例1:使用Navicat连接MySQL

在Navicat中,选择MySQL连接,填写自己的连接名称、IP地址、端口、用户名和密码等信息,点击“Test Connection”进行测试。如果测试通过,则表示MySQL安装成功。

示例2:使用Java代码连接MySQL

以下是使用Java代码连接MySQL的示例:

public class Test {
    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8";
        String user = "root";
        String password = "up123456";
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection connection = DriverManager.getConnection(url, user, password);
            System.out.println("MySQL连接成功!");
            connection.close();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

运行该代码,如果输出“MySQL连接成功!”则表示MySQL安装成功。

希望这些内容能够对你有所帮助。如果还有其他问题,欢迎再次咨询!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:安装mysq 5.7.20 解压版遇到的坑(推荐) - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • js中实现继承的五种方法

    下面是涉及“JS中实现继承的五种方法”的完整攻略。 1. 继承的概念 继承是指一个对象直接使用另一个对象的属性和方法。在JS中,“继承”通常是指一个对象直接使用另一个对象的原型对象的属性和方法。 2. 构造函数继承 构造函数继承是指在子类构造函数内部调用父类构造函数,在子类实例化时同时创建父类的属性和方法。这一方法实现较简单,但无法继承父类原型对象上定义的属…

    other 2023年6月26日
    00
  • 使用Netty搭建服务端和客户端过程详解

    “使用Netty搭建服务端和客户端过程详解”是一篇针对Netty初学者的教程,旨在介绍如何使用Netty框架来实现服务端和客户端的通信。本教程将详细阐述如何使用Netty搭建服务端和客户端,包括如下几个方面: Netty框架的基本介绍:介绍Netty的基本概念并简单介绍Netty的几个核心组件和它们的作用。 创建服务端:介绍如何在Netty框架下创建一个服务…

    other 2023年6月25日
    00
  • c++保留有效位和小数位

    C++保留有效位和小数位 在C++中,保留有效位和小数位是常见的需求。本文将详细讲解如何在C++中保留有效位和小数位,包括示例说明。 保留有效位 保留有效位是指一个浮点数保留指定的有效位数。在C++中,可以使用setprecision()函数来实现。setprecision()函数需要包含头文件<iomanip>。 以下是一个保留有效位的示例: …

    other 2023年5月8日
    00
  • docker菜鸟入门

    Docker菜鸟入门 什么是Docker? Docker是一个开源的容器化平台,可以让你将你的应用程序和依赖项打包成一个可移植的容器,然后在任何 Docker 容器运行时环境上运行这个容器。通过使用 Docker,你可以确保你的应用程序在不同的环境和平台上运行一致,而不需要担心因为不同的环境和平台而出现的问题。 Docker的优势 便携性:Docker容器可…

    其他 2023年3月28日
    00
  • ASP常见的保留字整理(变量与表名注意不能用)

    ASP常见的保留字整理(变量与表名注意不能用) 在ASP中,有一些保留字是不能用作变量名或表名的。这些保留字在ASP中具有特殊的含义,使用它们作为变量名或表名可能会导致语法错误或意外的行为。下面是一些常见的ASP保留字的整理: Response – Response 是一个ASP对象,用于向客户端发送输出。它具有许多方法和属性,如Write、Redirect…

    other 2023年8月9日
    00
  • 一篇带你了解C语言–位操作详情

    一篇带你了解C语言–位操作详情 介绍 在计算机中,二进制位(bit)是计算机内部处理数据的最小单位。C语言提供了位操作运算符和函数,用于操作和处理二进制位数据类型(int, char, short等)。 本文将带您了解C语言中的位操作,包括位运算符、位移动运算符以及位操作函数,并提供相关示例。 位运算符 按位与(&) 按位与运算符(&)比较…

    other 2023年6月27日
    00
  • javascript嵌套函数和在函数内调用外部函数的区别分析

    JavaScript嵌套函数和在函数内调用外部函数的区别分析 在JavaScript中,函数可以嵌套在其他函数内部,也可以在函数内部调用外部函数。虽然这两种方式都可以实现类似的功能,但它们之间存在一些区别。下面将详细讲解这两种方式的区别,并提供两个示例说明。 嵌套函数 嵌套函数是指在一个函数内部定义另一个函数。嵌套函数可以访问外部函数的变量和参数,这种特性称…

    other 2023年7月28日
    00
  • 微信小程序中promise的使用

    微信小程序中Promise的使用 在微信小程序的开发过程中,如果需要进行异步操作,就需要使用到Promise。Promise是ES6中新增的特性,它可以让异步操作更加优雅。 Promise的基本使用 Promise有三种状态:pending(进行中)、resolved(已成功)、rejected(已失败)。在使用Promise时,我们需要用到then()和c…

    其他 2023年3月28日
    00
合作推广
合作推广
分享本页
返回顶部