windows安装mysql、docker安装mysql

文章详细介绍了MySQL5.7的下载、安装和配置过程,包括配置文件my.ini的编写,设置端口、数据目录、字符集等关键参数,以及配置环境变量和启动MySQL服务。此外,还提到了JDK环境变量的配置方法。

1、windows安装mysql

1.1、下载Mysql安装包

1.1、访问地址,该地址默认下载的是mysql8版本的,第一个是正式版的,第二个是debug办版本。正常情况下,下载第一个就可以了。


在这里插入图片描述


点击Download后,会出现如下界面,直接点No thanks, just start my download.即可成功下载。
在这里插入图片描述

如果想下载其他版本的mysql,下载指定版本的mysql,然后直接选对应的版本就可以了,如下图。

在这里插入图片描述

1. 2、Mysql配置文件

下面是我的Mysql解压位置,my.ini文件是手动创建的,database目录也需要手动创建。

在这里插入图片描述

my.ini内容,您直接拿来用就行了,记得修改下目录就行

[mysqld]
#设置3306端口
port=3306
#设置mysql的安装目录
basedir=D:\\software\\work\\mysql-5.7.12-winx64\\database
#设置mysql数据库的数据的存放目录
datadir=D:\\software\\work\\mysql-5.7.12-winx64\\database\\data
#允许最大连接数
max_connections=200
#允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
#服务端使用的字符集默认为UTF8
character-set-server=utf8
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
group_concat_max_len=102400

[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8
[client]
#设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

1. 3、Mysql配置环境变量

这个就不截图了,我说下配置哪些变量就行了。
直接在Path变量中加一行mysql安装的bin目录地址。
D:\software\work\mysql-5.7.12-winx64\bin

1. 4、Mysql启动前设置

***下面命令都在cmd控制台执行,记得用管理员打开cmd控制台。 ***

在bin目录下执行 mysqld --initialize-insecure
在这里插入图片描述注意:如果执行mysqld --initialize-insecure命令报下图错误。则安装下vcredist_x64.exe,如果不报错,则不安装。
在这里插入图片描述

安装mysql
在bin目录下执行 mysqld -install
在这里插入图片描述
启动mysql
在bin目录下执行 net start mysql
在这里插入图片描述

登入Mysql
root用户默认是没有密码的,直接执行mysql -u root 命令就可以登入进入了。

set password for root@localhost = password(‘root’); 设置root用户的密码为root,
mysql -u root -proot 在登入。

注意:如果登录不上,可能初始化时设置了初始密码,在下面文件中的日志可以看到密码。把data目录删掉,重新执行下mysqld --initialize-insecure命令,查看日志即可
在这里插入图片描述

1. 5、JDK环境变量配置

1、新建系统变量JAVA_HOME
值是jdk安装的根目录,我的是:C:\Program Files\Java\jdk1.8.0_111

2、新建系统变量CLASSPATH变量,值固定

 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;

3、在系统变量的path变量里添加两行:

%JAVA_HOME%\bin
 
%JAVA_HOME%\jre\bin

2、docker安装mysql5.7

拉取镜像

docker pull mysql:5.7

创建映射目录

mkdir /mydata/mysql/data
mkdir /mydata/mysql/conf
mkdir /mydata/mysql/log

创建配置文件

cd /mydata/mysql/conf
vi my.cnf
[mysqld]
#设置3306端口
port=3306
#允许最大连接数
max_connections=200
#允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
#服务端使用的字符集默认为UTF8
character-set-server=utf8
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
group_concat_max_len=102400

[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8
[client]
#设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

启动mysql

docker run -d \
--privileged=true \
--name mysql57 \
-p 3306:3306 \
--restart=always \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf/my.cnf:/etc/mysql/my.cnf \
-v /mydata/mysql/log:/var/log/mysql \
-e MYSQL_ROOT_PASSWORD=root mysql:5.7 \

启动参数解读

-p 3306:3306:指定宿主机端口与容器端口映射关系
–name mysql:创建的容器名称
–restart=always:总是跟随docker启动
–privileged=true:获取宿主机root权限
-v /mydata/mysql/log:/var/log/mysql:映射日志目录,宿主机:容器
-v /mydata/mysql/data:/var/lib/mysql:映射数据目录,宿主机:容器
-v /mydata/mysql/conf/my.cnf:/etc/mysql/my.cnf \:映射配置目录,宿主机:容器
-e MYSQL_ROOT_PASSWORD=root:指定mysql环境变量,root用户的密码为root
-d mysql:5.7:后台运行mysql容器,版本是5.7

查看是否启动

docker ps

3、docker安装mysql8

拉取镜像

docker pull mysql:8.0.36

创建docker映射到本地目录

mkdir -p /mydata/mysql8/data /mydata/mysql8/log /mydata/mysql8/conf

vi /mydata/mysql8/conf/my.cnf
需要注意的是,
MYSQL8以上已经取消了NO_AUTO_CREATE_USER,sql_mode中不能包含这个。

[mysqld]
#设置3306端口
port=3306
#允许最大连接数
max_connections=200
#允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
#服务端使用的字符集默认为UTF8
character-set-server=utf8
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
group_concat_max_len=102400

[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8
[client]
#设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

启动

docker run -d \
--privileged=true \
--name mysql8 \
-p 13306:3306 \
--restart=always \
-v /mydata/mysql8/data:/var/lib/mysql \
-v /mydata/mysql8/conf:/etc/mysql/conf.d \
-v /mydata/mysql8/log:/var/log/mysql \
-e MYSQL_ROOT_PASSWORD=root mysql:8.0.36 \
### 在 Windows 上通过 Docker 安装 MySQL 要在 Windows 系统上使用 Docker 安装并运行 MySQL 数据库,可以按照以下方法操作: #### 准备工作 确保已经安装Docker Desktop 并启动服务。如果尚未安装,请先完成安装配置[^1]。 #### 拉取 MySQL 镜像 可以通过 `docker pull` 命令拉取官方的 MySQL 镜像。以下是两种方式: - **拉取最新版本** 使用以下命令获取最新的 MySQL 版本镜像: ```bash docker pull mysql ``` - **指定版本号** 如果需要特定版本(例如 MySQL 8.0 或其他),则可以在镜像名称后加上冒号和版本号: ```bash docker pull mysql:8.0 ``` 此部分描述来源于参考资料[^2]。 #### 启动 MySQL 容器 创建并启动一个基于所下载镜像的容器实例。下面是一个完整的示例命令,其中包含了环境变量设置、端口映射以及数据卷挂载等功能: ```bash docker run --name=mysql-container \ -e MYSQL_ROOT_PASSWORD=your_password_here \ -d -p 3306:3306 \ -v D:\mysql\data:/var/lib/mysql \ mysql:5.7 ``` 上述命令解释如下: - `--name=mysql-container`: 设置容器名为 `mysql-container`。 - `-e MYSQL_ROOT_PASSWORD=your_password_here`: 将根用户的密码设为自定义值 `your_password_here`。 - `-d`: 表明以后台模式运行该容器。 - `-p 3306:3306`: 映射主机上的 3306 端口至容器内的相同端口号。 - `-v D:\mysql\data:/var/lib/mysql`: 把本地路径 `D:\mysql\data` 绑定到容器中的 `/var/lib/mysql` 路径用于持久化存储数据库文件。 - `mysql:5.7`: 利用已拉取下来的 MySQL 5.7 版本来初始化新容器。 这部分内容综合参考了资料[^3]。 #### 进入 MySQL 控制台测试连接 为了确认安装成功与否,可尝试进入正在运行的 MySQL 实例内部执行一些基础查询语句来验证其功能正常性。具体做法如下所示: ```bash docker exec -it mysql-container mysql -uroot -pyour_password_here ``` 一旦登录成功,则表明整个部署流程顺利完成。 #### 使用 Navicat 工具远程管理 MySQL 对于图形界面偏好者来说,还可以借助第三方软件比如 Navicat 来实现更便捷的数据管理和维护作业。只需提供相应的服务器地址(localhost或者IP),用户名(root), 密码(your_password_here)即可建立链接。 ```python # Python 示例代码片段展示如何利用 pymysql 库访问刚才搭建好的 MySQL 数据源 import pymysql.cursors connection = pymysql.connect( host='localhost', user='root', password='your_password_here', database='testdb' ) try: with connection.cursor() as cursor: sql = 'SELECT * FROM users LIMIT 10;' cursor.execute(sql) result = cursor.fetchall() finally: connection.close() print(result) ``` 以上脚本仅作为演示用途,在实际开发环境中应当妥善保管敏感信息如账号凭证等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北漂IT民工_程序员_ZG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值