【MySQL】一个脚本启动MySQL 8.0并初始化数据库

news2024/11/17 11:49:45

很多情况下需要在客户端发布时发布 MySQL 数据库,这种发布方式虽然存在文件资源较大、易出错等缺点,但是却可以让桌面产品的发布更加完整。

本文将阐述如何使用一个脚本启动并初始化 MySQL 8.0 的方法,涵盖数据库下载、脚本源码、测试及可能遇到的问题等。

步骤

1、下载 MySQL 8.0.xx 绿色版

官网下载地址:https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.33-winx64.zip

在官网下载后将其解压,目录结构如下:
在这里插入图片描述

2、初始化脚本

准备初始化数据库脚本如下:

-- 删除原数据库
DROP DATABASE IF EXISTS xzbd;

-- 创建数据库 xzbd , IF NOT EXISTS 可以不写
CREATE DATABASE IF NOT EXISTS xzbd;

-- 使用数据库 xzbd
USE xzbd;

-- 创建表(初始化表)
CREATE TABLE IF NOT EXISTS customers (
id INT PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(255)
);

-- 插入数据
INSERT INTO customers(id, name, email) VALUES
(1, 'Alice', 'alice@example.com'),
(2, 'Bob', 'bob@example.com'),
(3, 'Carol', 'carol@example.com');

将上述脚本命名为 init.sql ,放在MySQL解压后的根目录(bin 目录同级的目录)

3、启动脚本

@echo off

rem 设置 MySQL 用户名和密码
set MYSQL_USERNAME=root
set MYSQL_PASSWORD=123456

rem 设置 MySQL 端口号,默认为 3306
set MYSQL_PORT=3306

rem 设置 MySQL 根目录路径,根据实际情况调整路径
set MYSQL_HOME=%cd%

rem 设置 SQL 初始化文件的路径
set SQL_INIT_FILE=%~dp0init.sql

rem 初始化 数据存储目录
"%MYSQL_HOME%\bin\mysqld" --initialize-insecure

rem 启动 MySQL 服务
echo Starting MySQL server...
"%MYSQL_HOME%\bin\mysqld" --port=%MYSQL_PORT% --console  --user=%MYSQL_USERNAME% --bind-address=127.0.0.1 --datadir="%MYSQL_HOME%\data"  --shared-memory   --init-file="%SQL_INIT_FILE%"
echo 
if %errorlevel% neq 0 (
    echo Failed to start MySQL server.
    exit /b %errorlevel%
)


echo MySQL server started successfully and new database created.
exit /b 0

脚本中定义了用户名、密码、端口和初始化脚本等信息。
将上述脚本命名为 start.bat ,放在MySQL解压后的根目录(bin 目录同级的目录)。

最终的文件目录结构如下所示:
在这里插入图片描述

启动

双击 start.bat 即可打开一个窗口,开始启动数据库
在这里插入图片描述
上图中看到 ready for connections. Version: '8.0.33' socket: '' port: 3306 MySQL Community Server - GPL. 表示,数据库启动成功。

连接测试

本章将使用 CMD 命令行工具和 DbEaver 两种方式测试 MySQL 的连接。

1、命令行工具测试

新开一个窗口,进入到数据库的 bin 目录中执行下列命令

mysql -u root -p 

效果如下:
在这里插入图片描述

2、客户端工具测试

使用 DbEaver 连接测试
1、编辑连接
在这里插入图片描述
2、测试连接
在这里插入图片描述

3、连接并查看信息
在这里插入图片描述

遇到的问题

1、start.bat 脚本执行后,MySQL 启动成功了,但是被挂起了,并没有执行到后面的部分。

该问题暂时没有解决,将持续更新。

2、MySQL 启动成功了,并不能使用指定的密码登录,使用密码会报 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

该问题暂时没有解决,将持续更新。

3、 [ERROR] [MY-000061] [Server] 1062 Duplicate entry '1' for key 'customers.PRIMARY'.'

该问题已解决,原因是 init.sql 执行前没有清除数据,多次尝试启动时会报这个错误。
解决方案:在 init.sql 脚本中使用清除历史数据,如加入以下语句。

-- 删除原数据库
DROP DATABASE IF EXISTS xzbd;

-- 创建数据库 xzbd , IF NOT EXISTS 可以不写
CREATE DATABASE IF NOT EXISTS xzbd;

4、[ERROR] [MY-010131] [Server] TCP/IP, --shared-memory, or --named-pipe should be configured on NT OS

该问题已解决。
解决方案在 bat 脚本中增加参数 --shared-memory

5、MySQL 启动成功了,但是3306端口连接不上

原因是启动脚本中添加了 --skip-grant-tables 参数,根据官方文档,加了该参数后,mysql 启动后的端口默认为 0 ,经测试,确实如此。从启动时Console 中打印的日志 [System] [MY-010931] [Server] D:\apps\mysql\mysql-8.0.33-winx64\bin\mysqld: ready for connections. Version: '8.0.33' socket: '' port: 0 MySQL Community Server - GPL.,也可以看到 prot:0

该问题已经解决。其中原因详情可查看官方文档。
解决方案: 去掉启动参数 --skip-grant-tables

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/463632.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PFSK162 3BSE015088R1通常都要做空载全电压合闸冲击试验

​ PFSK162 3BSE015088R1通常都要做空载全电压合闸冲击试验 变压器励磁涌流影响的保护整定 摘要:在大型变压器空栽冲击过程中,由于励磁涌流和负序电压的存在,如果定值整定不得当,会导致差动保护,复压过流保护等误动作&…

设计模式——组件协作模式之观察者模式

文章目录 前言一、“组件协作” 模式二、Observer 观察者模式1、动机2、模式定义3、伪代码示例①、第一种方案,最朴素的方式②、第二种方案,重构使得遵循DIP原则:③、进一步的小优化:④、修改使得支持多个观察者: 4、结…

028:Mapbox GL 绘制线段,实时测量长度距离值

第028个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中添加draw组件,绘制线段,编辑线段,实时显示长度值。这里使用turf来计算长度值,采用默认的单位千米。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代…

Elasticsearch:Standard Text Analyzer - 标准文本分析器

Elasticsearch 提供了超过很多开箱即用的分析器,我们可以在文本分析阶段使用它们。 这些分析器很可能足以满足基本情况,但如果需要创建自定义分析器,可以通过使用构成该模块的所需组件实例化一个新的分析器模块来实现。 下表列出了 Elasticse…

SuSE linux server 11通过SAP来安装oracle11g

这里安装通过xmanager4进行安装,之前文章已经说了怎么通过xmanager4来连接linux系统,这里说一下安装oracle11g。 我这里是通过sap来安装oracle11g,所以需要 export LD_LIBRARY_PATH/oracle/P90/112_64/lib/:/sapmnt/P90/exe/ 同时在orap90用…

Mac使用命令行工具解压和压缩rar文件

目前在Mac电脑里支持解压缩的格式主要有:zip、gz等,但是还不支持rar格式的文件,接下来带着大家学习一下如何解压缩rar格式文件。 1.下载rar工具 打开:https://www.rarlab.com/download.htm 根据自己电脑的芯片要求选择自己的安装…

马云的创业故事及他人生中的摆渡人-卖掉中国黄页去北漂(四)

马云上京,是在外经贸部一位名叫王建国的朋友牵线之下,受邀担任外经贸部下属的中国国际电子商务中心(下面简称EDI)总经理,负责搭建外经贸部官网和网上中国商品交易市场。 马云团队在潘家园租了房子,白天上班…

如何编写高质量代码、提高编程效率?

一、 前言 高质量代码是指在满足功能需求的基础上,具备高性能、安全、可扩展、易维护、可测试等特点的代码。它不仅可以提高开发效率和代码质量,更能有效减少代码维护成本,促进团队协作和项目成功。因此,编写高质量代码对程序员来…

妙记多「我的主页」升级,日历聚合任务待办,为你打造个人时间管理系统⏰

我们应该如何处理“日程”和“待办”的关系? 日程和待办的区别与联系 从字面意义上来理解,日程是这一天的安排,待办是需要去完成的事情,日程与待办本质上是一种相互包含的关系。将所有事情都视作待办显然是不科学的,那…

二叉树的非递归遍历

目录 前言: 一:前序遍历 二:中序遍历 三:后序遍历 四:层序遍历 前言: 二叉树的非递归遍历需要借助栈和队列以及二叉树的一些基础接口,这些在之前的文章中有讲过,这里就不赘述&…

SSD目标检测

数据集以及锚框的处理 数据集: 图像:(batch_size , channel , height , width) bounding box: (batch_size , m , 5) m: 图像中可能出现的最多边界框的数目 5: 第一个数据为边界框对应的种…

tongweb

13051667606 东方通产品介绍 产品兼容 硬件要求 安装 安装目录结构 启动tongweb 停止tongweb bin下常用命令 企业版管理控制台 文档:产品简介及安装指南 绿色版直接解压安装 tar -zxvf …tar.gz Tongweb的配置文件 在conf的tongweb.xml 修改端口等信息 通过页面…

第四章 Unity工程和相机介绍

在上面的章节中,我们创建了一个“New Unity Project”工程,并保存到了“E:\workspace”工作空间下。那么,我就先看看这个工程的文件结构(E:\workspace\ New Unity Project)。 接下来,我们简单介绍一下这些目…

【老王读SpringMVC-3】根据 url 是如何找到 controller method 的?

前面分析了 request 与 handler method 映射关系的注册,现在再来分析一下 SpringMVC 是如何根据 request 来获取对应的 handler method 的? 可能有人会说,既然已经将 request 与 handler method 映射关系注册保存在了 AbstractHandlerMethodMapping.Ma…

Python 二进制 八进制 十进制 十六进制之间的转换

众所周知:计算机底层是以二进制数来进行存储计算,而计算机进制:数制是用一组固定的符号和统一的规则来表示数值的方法。 开始下面讲述之前首先要声明: 二进制,八进制,十六进制 都可以转换为十进制&#xf…

【DRF配置管理】如何在视图类使用get_objects()

原文作者:我辈李想 版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。 DRF应用和管理 【DRF配置管理】Django使用DRF框架 【DRF配置管理】如何在视图类配置参数(一) 【DRF配置管理】如何在视图类配置参数(二) 【DRF配置管理…

第二届广州·琶洲算法大赛启动,百度飞桨助力广州打造中国算法新高地

‍‍ 生成式人工智能热潮席卷全球,算法创新成为 AI 突破发展的关键,推动实体经济高质量增长。4月25日,第二届广州琶洲算法大赛正式启动,广州市政府主办、百度飞桨等联合承办,广召天下算法英雄,加快“琶洲算…

<网络编程>网络套接字

目录 理解源IP地址和目的IP地址 认识端口号 端口号和进程ID的关系 理解源端口号和目的端口号 初步认识TCP、UDP协议 TCP协议 UDP协议 网络字节序列 socket网络接口 socket常见API sockaddr结构 UDPsocket 编码: 理解源IP地址和目的IP地址 源IP&#xf…

服装店铺装修有哪些窍门?做好这3点,顾客主动上门

现在街边有各种各样的服装店,有的服装店客流不断,有的服装店却很冷清,导致这种现象的原因有很多,比较重要的一点就是你的服装店铺装修没做好。 你的服装店铺装修足够吸引人吗? 什么样的服装店铺装修才能吸引顾客&#…

【技巧】如何修改PDF文件?

PDF文件格式安全、标准化,很多人在工作中几乎离不开。可有些小伙伴想要修改PDF文件内容时,发现无法修改,那是什么情况呢?如何才能修改PDF文件呢?下面小编就来分享一些小技巧。 技巧一:使用PDF编辑器 如果使…