MySQL8.0 安装部署(2025最新版)

1.1. 版本及下载

  • 版本介绍:
  1. Alpha版:开发版,公司内部使用
  2. Beta版:完成开发后,用户体验版
  3. RC版:生产环境发布之前的一个小版本或称候选版
  4. GA版:正式发布版本(咱们要用的)
  • MySQL官网地址:http://www.mysql.com/
  1. 从官方网站下载安装包
  2. 从官方网站下载源代码包
  3. 从官方网站下载二进制包
  4. 从发行版本光盘中获取安装
  • MySQL 常见版本:
  1. MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。
  2. MySQL Enterprise Edition 企业版本,需注册付费,可以试用 30 天。
  3. MySQL Cluster 集群版,开源免费。可将几个 MySQL Server 封装成一个 Server
  4. MySQL Cluster CGE 高级集群版,需付费
  • 官方文档:https://dev.mysql.com/doc/refman/8.0/en/introduction.html
  • MySQL数据库存在多种版本,不同的版本在不同的平台上:https://dev.mysql.com/downloads/mysql/

  • 也可以选择MySQL对应版本的,找到安装教程,如MySQL8.0为例:https://dev.mysql.com/doc/refman/ 8.0/en/installing.html

1.2. Windows安装MySql8.0 msi格式  

1.2.1. mis格式安装

  • 下载地址:https://dev.mysql.com/downloads/installer/

  • 安装过程:
安装路径必须为英文路径
注意:安装mysql8.0需要先安装依赖,若无依赖会自动下载安装,本步骤可选
默认设置即可,即开发平台,端口3306,加密端口33060
认证方式,默认
设置root密码
工作中:长度大于8为,数字大小写字母和特殊字符组成
当前学习环境:123456
登录账户:默认只有root,可以添加
安装的服务名设置,默认即可
安装路径,默认
安装时执行的内容
下一步
完成
  • 注意:若这里报错则则Alt+Ctrl+Delete打开任务管理器-----服务-----MySQL80---右击打开服务---找到MySQL80右击------属性----登录----允许本地系统账户

  • 安装后的配置:环境变量(非必要): 若配置的mysql的环境变量则可以在CMD中运行MySql

  

新建一个词条:输入mysql安装路径:C:\Program Files\MySQL\MySQL Server 8.0\bin
打开mysql自带的命令行测试,输入密码123456进行测试
命令提示符测试
强大的命令行--powershell测试
  • mysql服务启动与停止
  1. 启动:net start mysql80
  2. 停止:net stop mysql80

  • 可视化管理:

  • 清屏:

  • win系统参考:https://baijiahao.baidu.com/s?id=1786910666566008458&wfr=spider&for=pc

1.3. Windows安装mysql8.0 zip格式

1.3.1. 卸载mis格式   

  • 1:不能直接删除msyql安装目录,需要卸载完毕后检查是否有安装目录

  • 2:删除文件夹C:\ProgramData\MySQL(若存在)  
  • 注3:使用 sc delete mysql 删除服务
  • 4:若重新安装有报错,可以按照下面的方式检查是否有未删除的内容

1.3.2. 下载zip格式

  • 地址:https://dev.mysql.com/downloads/mysql/ ,选择标准包

1.3.3. 安装过程

  • 解压缩:注意,路径中不能有中文,如:D:\mysql-8.0.37-winx64

  • 配置环境变量:注意,之前的环境变量删除,或者直接修改

  • 创建配置文件:D:\mysql-8.0.37-winx64\my.ini
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[mysqld] # 服务端设置
# 设置3306端口
port=3306
# 重要,设置mysql的安装目录
basedir=D:\mysql-8.0.37-winx64
# 重要,设置mysql数据库的数据的存放目录
datadir=D:\mysql-8.0.37-winx64\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
  • 初始化mysql80服务(以管理员身份执行):mysqld --initialize --console
推荐在命令提示符中完成,若有错则会提示,在powershell中初始化时有错无提示
注意:临时登录的密码,若未保存密码就关闭了窗口则需在重新初始化之前删除data目录
  • 初始化时可能会出现的问题
  1. 环境变量问题:需要查看Windows的环境变量

     2. 缺少依赖文件问题:下载VC开发运行库依赖进行安装,如:VisualC_Redistributable
  • 安装MySql服务: mysqld --install

  

  • 启动服务:net start mysql

  • 登录: mysql -uroot -p ,粘贴之前保存的临时密码

  • 修改密码,格式:alter user root@localhost identified by '123456'; ,不修改则无法工作

  • 重新登录,输入新密码

  • 4zip格式卸载只需停止服务、删除D:\mysql-8.0.37-winx64文件目录即可

1.4. yum仓库安装

1.4.1. 添加yum(RHEL)

  • 访问官方:https://www.mysql.com/
  • 查看官方教程:https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html
  • 选择downloads页面的:MySQL Community (GPL) Downloads »

  • 选择:MySQL Yum Repository

  • 选择版本后下载yum 

  • 添加yum
[root@server ~]# wget https://dev.mysql.com/get/mysql84-community-release-el9-
1.noarch.rpm
[root@server ~]# rpm -ivh mysql84-community-release-el9-1.noarch.rpm
[root@server ~]# yum list | grep mysql
  • 安装mysql-community-server
[root@server ~]# yum install mysql-community-server.x86_64 -y
[root@server ~]# systemctl start mysqld # 启动,注意有d
[root@server ~]# systemctl status mysqld
[root@server ~]# grep 'temporary password' /var/log/mysqld.log
2023-07-09T02:38:36.368700Z 6 [Note] [MY-010454] [Server] A temporary password is
generated for root@localhost: qQ6OmpD?8_.f # 查看初始登录密码
[root@server ~]# mysql -u root -p # root身份登录
Enter password: # 赋值初始登录密码
mysql> alter user 'root'@'localhost' identified by 'Admin123!'; # 设置新密码
mysql> show variables like 'validate_password.%'; # 查看密码设置默认的规则
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password.check_user_name | ON | # ON时,账户及密码不能相同
| validate_password.dictionary_file | | # 规则文件保存路径
| validate_password.length | 8 | # 密码长度
| validate_password.mixed_case_count | 1 | # 至少要包含大/小写字母的个数
| validate_password.number_count | 1 | # 至少要包含数字的个数
| validate_password.policy | MEDIUM | # 密码的验证强度等级
| validate_password.special_char_count | 1 | # 密码中特殊字符个数
+--------------------------------------+--------+
7 rows in set (0.01 sec)
# 默认为中级密码验证规则,密码长度8为,内容至少包含:一个大写字母、一个小写字母、一位数字和一个特殊
字符
# 若密码不好记忆可以调低密码验证等级,在设置简单的密码,但生产中不推荐
mysql> set global validate_password.policy=low;
mysql> set global validate_password.length=6;
mysql> alter user 'root'@'localhost' identified by '123456';
mysql> exit
Bye
[root@server ~]# mysql -u root -p
Enter password: # 密码为123456
mysql> show databases; # 注意s和分号结尾
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
mysql> show global variables like 'port'; # 查看默认端口号
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port | 3306 |
+---------------+------+
1 row in set (0.00 sec)

mysql> quit
Bye

1.4.2. 注意

  • 使用centos9-stream源安装mysql默认没有初始密码,也缺少某些功能,不推荐
# 恢复快照
[root@server ~]# yum install mysql-server
[root@server ~]# systemctl start mysqld # 启动,注意有d
[root@node1 ~]# grep 'temporary password' /var/log/mysqld.log #文件更换位置了
grep: /var/log/mysqld.log: 没有那个文件或目录
[root@node1 ~]# grep 'temporary password' /var/log/mysql/mysqld.log
[root@server ~]# mysql -u root -p
Enter password: # 直接回车
mysql> show variables like 'validate_password.%';
Empty set (0.02 sec) # 注意:显示为空,表示未安装插件
mysql> INSTALL COMPONENT 'file://component_validate_password';
Query OK, 0 rows affected (0.01 sec)
mysql> exit
Bye

1.5. 本地RPM包安装

1.5.1. 使用迅雷下载集合包

  • 进入下载网站:https://downloads.mysql.com/archives/community/  
  • 如图:

1.5.2. 使用xftp将集合包上传到/目录

1.5.3. 安装

[root@server ~]# cd /
[root@server /]# tar -xvf mysql-8.0.32-1.el9.x86_64.rpm-bundle.tar # 解压
[root@server /]# yum localinstall mysql-community-server-8.0.32-1.el9.x86_64.rpm \
mysql-community-client-8.0.32-1.el9.x86_64.rpm \ # 必须,客户端
mysql-community-common-8.0.32-1.el9.x86_64.rpm \ # 必须,公共库
mysql-community-icu-data-files-8.0.32-1.el9.x86_64.rpm \ # 必须,支持正则表达式的icu
数据文件
mysql-community-client-plugins-8.0.32-1.el9.x86_64.rpm \ # 必须,客户端共享插件
mysql-community-libs-8.0.32-1.el9.x86_64.rpm # 不必须,开发库,开发跟MySql有关的
C/C++ 项目时则需要
[root@server /]# cd ~
[root@server ~]# systemctl start mysqld
[root@server ~]# systemctl status mysqld # 查看状态
[root@server ~]# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
# 密码错误,需要重置密码
[root@server ~]# grep password /var/log/mysqld.log # 查询初始密码
2023-02-09T03:55:47.305118Z 6 [Note] [MY-010454] [Server] A temporary password is
generated for root@localhost: q&2PO.yJZ+Hp
# q&2PO.yJZ+Hp为密码,需要复制
[root@server ~]# mysql -u root -p
Enter password: # 粘贴之前的密码
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before
executing this statement. # 提示需要修改默认密码
mysql> alter user 'root'@'localhost' identified by 'MyNewPass1!'; # 修改密码
Query OK, 0 rows affected (0.01 sec)
mysql> exit
Bye

1.6. 容器安装

1.6.1. 方法:

[root@server ~]# yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine \
podman \
runc -y # 先移除已安装的dockerpodman等软件,未安装可不执行
# yum-utilsCentOS官方开发的Linux包管理工具,它是yum软件包管理器的扩展,提供了一系列额外的命令
和脚本,可以帮助Linux系统管理员更好地管理依赖关系、配置文件、软件包更新等方面的工作
[root@server ~]# yum install yum-utils -y # 安装并升级
# yum-config-manager包含在untils工具包中,用于对repo文件进行处理
[root@server ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker
ce/linux/centos/docker-ce.repo # 添加源
# 安装docker核心软件及客户端软件
[root@server ~]# yum install docker-ce docker-ce-cli -y # 安装
[root@server ~]# systemctl start docker
[root@server ~]# systemctl status docker
[root@server ~]# docker version
[root@server ~]# docker run hello-world # 测试
# 注意:由于使用默认镜像仓库下载速度较慢,可以设置阿里的镜像加速器提高下载速度,在阿里开源登录->
制台-镜像容器服务-镜像工具->镜像加速器->linux命令行中设置如下:
[root@node1 ~]# vim /etc/docker/daemon.json
# 粘贴如下:
{
"registry-mirrors": ["https://1heqe202.mirror.aliyuncs.com"]
}
[root@node1 ~]# systemctl daemon-reload
[root@node1 ~]# systemctl restart docker
[root@node1 ~]# docker info # 查看信息最后有:
Registry Mirrors:
https://1heqe202.mirror.aliyuncs.com/
# 上述镜像加速可以选择不做
[root@server ~]# docker run --name mysqltest1 -e MYSQL_ROOT_PASSWORD=123456 -d
mysql # 创建mysqltest1实例,设置登录密码,启动mysql,若没有拉取镜像会自动拉取
[root@server ~]# docker ps # 查看是否运行,若没有运行实例可以重新建立数据库mysqltest2
[root@server ~]# yum install bash-com* # 安装bash扩展包,实现命令补齐,若已安装可跳过
[root@server ~]# docker exec -it mysqltest1 /bin/bash # 进入容器终端并且的保留为容器终
端的输入形式.
bash-4.4# mysql -uroot -p # 登录
Enter password: # 输入123456密码
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.30 MySQL Community Server - GPL
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql> exit
Bye
bash-4.4# exit
exit

1.6.2. 注意:

  • 不推荐将数据库部署在容器中,原因如下:
  • 安全问题:当容器崩溃,数据库为正常关闭可能损坏数据
  • 性能问题:mysql是关系型数据库,对I/O要就较高,若数据库部署在容器中,I/O会出现瓶颈
  • 网络问题、状态问题、资源隔离问题、等等
  • 建议:可以把数据丢失不敏感的业务(搜索等)进行容器化,也可以跑轻量级或分布式数据库

1.7. 生产环境中使用通用二进制包安装

1.7.1. 作用

  • 二进制包:源码包经过成功编译之后产生的包
  • 优点:由于二进制包在发布之前就已经完成了编译的工作,因此用户安装软件的速度较快
  • 注意:在生产环境中通用二进制包安装方法较为常用

1.7.2. 软件包下载

  • 网址:https://dev.mysql.com/downloads/mysql/
  • 如图:

根据上图系统参数里的glibc版本cpu架构选择

1.7.3. 使用xftp将软件包上传到根目录

1.7.4. 解压缩

[root@server ~]# tar xvf mysql-8.0.37-linux-glibc2.17-x86_64.tar.xz
[root@server ~]# cd mysql-8.0.37-linux-glibc2.17-x86_64
[root@server mysql-8.0.37-linux-glibc2.28-x86_64]# ls
bin      include     LICENSE      README     support-files    docs    lib    man    share

1.7.5. 使用前的准备

# 移动到默认安装目录,也可自行修改
[root@server ~]# cd ~
[root@server ~]# mv mysql-8.0.37-linux-glibc2.17-x86_64 /usr/local/mysql
[root@server /]# cd /usr/local/mysql
[root@server mysql]# groupadd mysql # 创建名为mysql的用户组
[root@server mysql]# useradd -r -g mysql -s /bin/false mysql # 创建名为 mysql的系统用
户,将其添加到mysql用户组中,并设置其登录shell/bin/false,以限制该用户的登录权限
[root@server mysql]# mkdir data # 创建用于存放MySQL数据文件目录
# 设置mysql目录的账户及工作组,生产环境中不要使用root
[root@server mysql]# chown -R mysql:mysql /usr/local/mysql

1.7.6. 初始化软件
 

[root@server mysql]# bin/mysqld --initialize --user=mysql --
basedir=/usr/local/mysql --datadir=/usr/local/mysql/data # 注意:需要复制密码
[root@server mysql]# bin/mysqld_safe --user=mysql & # 使用后台方式以mysql用户身份启动
MySQL 服务器,mysqld_safe 是一个用于启动和监控 MySQL 服务器的脚本
# 注意:此时上述命令执行完毕处于后台运行状态,需要另行启动一个终端
[root@server ~]# ps -ef | grep mysql # 查看进程运行状态
[root@server ~]# cd /usr/local/mysql
[root@server ~]# bin/mysql -u root -p # 登录,可能报错
# 报错,需要找到下面的文件进行软连接
[root@server ~]# ln -s /usr/lib64/libncurses.so.6.3 /usr/lib64/libncurses.so.5
[root@server ~]# ln -s /usr/lib64/libtinfo.so.6.3 /usr/lib64/libtinfo.so.5
[root@server ~]# bin/mysql -u root -p
Enter password: # 粘贴之前的初始密码
mysql> alter user 'root'@'localhost' identified with mysql_native_password by
'123456'; 修改密码
mysql> flush privileges; # 刷新

mysql> use mysql; # 查看账户信息
mysql> select user, host, plugin from mysql.user;
+------------------+-----------+-----------------------+
| user | host | plugin |
+------------------+-----------+-----------------------+
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session | localhost | caching_sha2_password |
| mysql.sys | localhost | caching_sha2_password |
| root | localhost | mysql_native_password |
+------------------+-----------+-----------------------+
4 rows in set (0.00 sec)
mysql>exit
[root@server ~]# ps -ef | grep mysql
[root@server ~]# kill -9 pid# 在当前终端关闭运行的mysql

1.7.7. 设置mysql的配置文件

# 回到之前的终端,敲一个回车,显示进程以杀死
[root@server mysql]# vim /etc/my.cnf # 新建配置文件,输入以下内容:
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
tmpdir = /tmp
socket = /tmp/mysql.sock
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
default-storage-engine=INNODB
log_error = error.log
# 注意:以下是上述配置文件的解释
[client] # 客户端设置
port = 3306 # 默认端口号
socket = /tmp/mysql.sock # 启动套接字
[mysqld]
###############################基础设置#####################################
port = 3306 # 端口号 3306
basedir = /usr/local/mysql # mysql安装根目录
datadir = /usr/local/mysql/data # mysql数据文件所在位置 没有改目录则创建
tmpdir = /tmp # 临时目录 比如load data infile会用到
socket = /tmp/mysql.sock # 设置socke文件所在目录
#数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
character-set-server = utf8mb4
#数据库字符集对应一些排序等规则,注意要和character-set-server对应
collation-server = utf8mb4_general_ci
default-storage-engine=INNODB
###############################日志设置#####################################
#数据库错误日志文件
log_error = error.log

1.7.8. 配置启动脚本

[root@server ~]# cd /usr/local/mysql/support-files
[root@server support-files]# cp -a mysql.server /etc/init.d/mysql # 拷贝启动脚本,可能
报错
[root@server support-files]# yum install chkconfig # 安装修通服务配置的包
[root@server support-files]# cp -a mysql.server /etc/init.d/mysql
[root@server support-files]# cd /etc/init.d
[root@server init.d]# vim mysql # 增加=之后的内容
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
[root@server init.d]# cd ~
[root@server ~]# systemctl daemon-reload # 重载系统配置
[root@server ~]# systemctl start mysql
[root@master1 ~]# /usr/lib/systemd/systemd-sysv-install enable mysql # 开机启动
[root@server ~]# vim ~/.bash_profile # 设置环境变量需添加如下语句
export PATH=$PATH:/usr/local/mysql/bin
[root@server ~]# source ~/.bash_profile
[root@server ~]# mysql -uroot -p
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.01 sec)
mysql> exit

1.8. 安装navicat

1.8.1. 简介

  • 官网:https://www.navicat.com.cn/navicat-17-highlights
  • Navicat是一套创建、管理和维护数据库的可视化工具

1.8.2. 预处理

  • 默认mysql的用户不允许远程连接,则需要更改为允许连接,但在生产环境中一般不推荐开启允许远程连接,若只有本机连接,可以不做
mysql> use mysql;
mysql> select host,user from user;
mysql> update user set host='%' where user = 'root';
mysql> flush privileges;
mysql> select host,user from user; 

1.8.3. 新建navicat连接

  • 连接->mysql
  • 如图:

  • 注意:密码为登录mysql的密码123456
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值