MySQL安装配置及卸载(超详细、各种安装方式)本篇主要围绕讲解在 红帽派系(RedHat、Centos7)、Debia
一:序
本篇主要围绕讲解在 红帽派系(RedHat、Centos7)、Debian派系(Debian、Ubuntu)、Windows派系 这几种方式的在线以及离线的安装和卸载。 关于红帽派系就以Centos7为主、Debian派系就以 Ubuntu 24.04 LTS 为主。Linux版本的安装会涉及到包管理器安装方式(apt、yum)以及使用纯安装包的方式(deb、rpm);涉及到Windows的话就会分为安装版和解压版两种方式。 注意:apt、deb都属于Ubuntu的包管理器和安装包;yum、rpm都属于Centos的包管理器和安装包。
注:文章可能会很长,大伙可以按照指定的目录跳转阅读。\color{#f00}{注:文章可能会很长,大伙可以按照指定的目录跳转阅读。}注:文章可能会很长,大伙可以按照指定的目录跳转阅读。
二:下载MySQL管理软件
MySQL官网地址:www.mysql.com/cn/ 进入链接后点击 下载;在了解了下面的几个版本后,我们就可以确定需要下载哪种类型的版本,本篇文章我以社区版的下载讲解为主。
MySQL Community Server(社区版本,平常使用这个):
开源免费,自由下载,但不提供官方技术支持,适用于大多数普通用户。'(基本上公司都是选这个的)'
MySQL Enterprise Edition(企业版本):
付费,不能在线下载,试用30天。提供更多的功能和技术支持,更适合于对数据库的功能和可靠性要求较高的企业客户。
MySQL NDB Cluster CGE(集群版和高级集群版):
开源免费。用于架设集群服务器,可将几个MySQL Server封装成一个Server。需要在社区版或企业版的基础上使用。
但是对于CGE的高级集群则需要收费。
官方还提供了MySQL Workbench(GUITOOL)一款专为MySQL设计的图形界面管理工具。
MySQL Workbench又分为两个版本,分别是社区版(MySQL Workbench OSS)、商用版(MySQL WorkbenchSE)
按照上图就可以下载Windows操作系统的版本,注意在线上环境不推荐下载安装MySQL9.0的创新版(我称它为尝鲜版,等稳定再用); 其实企业使用最多的还是稳定的 8.4 LTS 版本以及 5.7 版本。
(一):MySQL的Linux版下载
本篇针对 MySQL 5.7 以及 MySQL 8.4 LTS 两种版本来说明,列举日常下载不同平台的版本示例。下面下载的都不是最新版本,最新版本参考上面。
说明:x86指的是PC端,CPU采用x86的架构,内部使用的是复杂指令集(CISC),一般我们使用的桌面电脑、笔记本和服务器都是这种架构。ARM指的是移动端,CPU采用ARM的架构,内部使用的是精简指令集(RISC),一般我们使用的智能手机、平板、物联网设备都是采用这种架构。
关于MySQL下载注意,Ubuntu 24.04 LTS 系统中安装MySQL5.7版本的deb安装包会出现兼容性问题,其中libc6-dev依赖存在版本问题,需要将libc6-dev依赖版本降级,这里不推荐这种做法,所以使用Ubuntu24时推荐安装MySQL8.4版本。
下载Ubuntu−24.04(LTS)版本的MySQL8.4\color{#FFC125}{下载Ubuntu-24.04(LTS)版本的MySQL8.4}下载Ubuntu−24.04(LTS)版本的MySQL8.4
下载Ubuntu−22.04(LTS)版本的MySQL5.7\color{#FFC125}{下载Ubuntu-22.04(LTS)版本的MySQL5.7}下载Ubuntu−22.04(LTS)版本的MySQL5.7
下载的这个MySQL5.7版本在Ubuntu18、20、22这几个版本的系统都是可以正常安装。
下载Centos7版本的MySQL5.7以及MySQL8.4\color{#FFC125}{下载Centos7版本的MySQL5.7以及MySQL8.4}下载Centos7版本的MySQL5.7以及MySQL8.4
(二):MySQL的Windows版下载
下载这种的贼简单,进入下载界面,直接默认就是Windows,具体可以参考上面的示例图,一共存在两种下载,分别为:
Windows (x86, 64-bit), MSI Installer通过安装程序安装(推荐)
Windows (x86, 64-bit), ZIP Archive通过解压包的方式解压安装
下文也会给出MySQL8.4解压版的方式安装和安装程序的安装。
MySQL8.4、8.0、5.7、5.5版本的msi安装程序方式安装
三:卸载已安装的MySQL
若之前没安装过MySQL服务的话可以跳过。但是安装了,卸载时请先关闭MySQL服务后在进行卸载步骤。如果之前的数据库是有重要数据的,卸载前一定要备份:/var/lib/mysql 目录文件
关于Ubuntu、Debain安装的MySQL卸载:\color{#f00}{关于Ubuntu、Debain安装的MySQL卸载:}关于Ubuntu、Debain安装的MySQL卸载:
'【这里我以在 Ubuntu24.04(LTS)、Debain 12.0 系统卸载 MySQL8.4 来说明】'
'关闭MySQL服务:systemctl stop mysql'
'Ⅰ:查看已经安装的MySQL信息:'
dpkg --get-selections | grep "mysql"
libmysqlclient-dev install
libmysqlclient24:amd64 install
mysql-client install
mysql-common install
mysql-community-client install
mysql-community-client-core install
mysql-community-client-plugins install
mysql-community-server install
mysql-community-server-core install
mysql-server install
'Ⅱ:卸载查询出来的关于MySQL的依赖信息:'
注意:remove卸载安装的服务、--purge卸载安装的服务同时还删除配置文件。
apt-get remove --purge mysql-server mysql-client mysql-common mysql-community-client-core mysql-community-client-plugins mysql-community-server-core
卸载的过程中会弹出确认框,我们选择 Yes 即可卸载。
'【若是在 Ubuntu22.04(LTS)系统中卸载 MySQL5.7 请参考这】'
注意:和上面基本都一样,执行如下的apt-get卸载即可。
apt-get remove --purge mysql-server mysql-client mysql-common mysql-community-source
关于Centos安装的MySQL卸载:\color{#f00}{关于Centos安装的MySQL卸载:}关于Centos安装的MySQL卸载:
'关闭MySQL服务:systemctl stop mysqld'
'Centos7系统卸载MySQL 8.4(MySQL 5.7 也是一样的,查询出来啥,卸载啥就行)'
'Ⅰ:查询已经安装的MySQL信息'
rpm -qa | grep -i mysql
mysql-community-client-plugins-8.4.0-1.el7.x86_64
mysql-community-libs-compat-8.4.0-1.el7.x86_64
mysql-community-libs-8.4.0-1.el7.x86_64
mysql-community-common-8.4.0-1.el7.x86_64
mysql-community-client-8.4.0-1.el7.x86_64
mysql-community-icu-data-files-8.4.0-1.el7.x86_64
mysql-community-server-8.4.0-1.el7.x86_64
'Ⅱ:卸载上面查询出来的关于MySQL的依赖信息'
rpm -e --nodeps mysql-community-client-plugins-8.4.0-1.el7.x86_64
rpm -e --nodeps mysql-community-libs-compat-8.4.0-1.el7.x86_64
rpm -e --nodeps mysql-community-libs-8.4.0-1.el7.x86_64
rpm -e --nodeps mysql-community-common-8.4.0-1.el7.x86_64
rpm -e --nodeps mysql-community-client-8.4.0-1.el7.x86_64
rpm -e --nodeps mysql-community-icu-data-files-8.4.0-1.el7.x86_64
rpm -e --nodeps mysql-community-server-8.4.0-1.el7.x86_64
'Ⅲ:卸载完基本的环境后,我们要清理MySQL数据文件(就是我们创建数据库数据的位置,重要的话可以备份)'
rm -rf /var/lib/mysql
'补充:若是通过我下文的案例装过 MySQL 5.7.44 的话则通过如下直接卸载(查询出来的也是这些)'
rpm -e --nodeps mysql-community-common-5.7.44-1.el7.x86_64
rpm -e --nodeps mysql-community-libs-compat-5.7.44-1.el7.x86_64
rpm -e --nodeps mysql-community-libs-5.7.44-1.el7.x86_64
rpm -e --nodeps mysql-community-client-5.7.44-1.el7.x86_64
rpm -e --nodeps mysql-community-server-5.7.44-1.el7.x86_64
四:离线方式安装MySQL
不是所有的服务器或者电脑都是有公网的,离线方式安装虽然难受,但也是必须要了解的(后面会通过apt和yum方式安装);要将下载的包上传到服务器,在安装的同时遇到了缺少依赖问题,还得再去下载并上传,下面将介绍如何安装对应版本的MySQL。 注:Ubuntu和Debain缺少啥依赖包可以去这里下载:pkgs.org/ 注:Centos7包下载:mirrors.aliyun.com/centos/7/os…
官方文档:\color{#f00}{官方文档:}官方文档: 在 Debain 12.0 上离线方式安装MySQL 8.4(LTS) 文档链接
(一):Ubuntu24安装MySQL8.4
将下载的MySQL8.4的deb包上传到服务器,我默认上传到/home目录下,然后通过dpkg安装。别忘了下面的libmecab2的依赖包下载,要不然mysql-community-server-core无法被安装。
必须的依赖下载:
libmecab2_0.996-14ubuntu4_amd64.deb 依赖包直达地址
按照顺序依次安装:
'安装顺序(必须按照这个顺序、且命令需要一条一条复制执行):'
sudo dpkg -i libmecab2_0.996-14ubuntu4_amd64.deb
sudo dpkg -i mysql-common_8.4.0-1ubuntu24.04_amd64.deb
sudo dpkg -i mysql-community-client-plugins_8.4.0-1ubuntu24.04_amd64.deb
sudo dpkg -i libmysqlclient24_8.4.0-1ubuntu24.04_amd64.deb
sudo dpkg -i libmysqlclient-dev_8.4.0-1ubuntu24.04_amd64.deb
sudo dpkg -i mysql-community-client-core_8.4.0-1ubuntu24.04_amd64.deb
sudo dpkg -i mysql-community-client_8.4.0-1ubuntu24.04_amd64.deb
sudo dpkg -i mysql-client_8.4.0-1ubuntu24.04_amd64.deb
sudo dpkg -i mysql-community-server-core_8.4.0-1ubuntu24.04_amd64.deb
sudo dpkg -i mysql-community-server_8.4.0-1ubuntu24.04_amd64.deb
sudo dpkg -i mysql-server_8.4.0-1ubuntu24.04_amd64.deb
'若想汇总成一条命令则需要如下方式(也得注意包的顺序):'
sudo dpkg -i libmecab2_0.996-14ubuntu4_amd64.deb mysql-common_8.4.0-1ubuntu24.04_amd64.deb mysql-community-client-plugins_8.4.0-1ubuntu24.04_amd64.deb libmysqlclient24_8.4.0-1ubuntu24.04_amd64.deb libmysqlclient-dev_8.4.0-1ubuntu24.04_amd64.deb mysql-community-client-core_8.4.0-1ubuntu24.04_amd64.deb mysql-community-client_8.4.0-1ubuntu24.04_amd64.deb mysql-client_8.4.0-1ubuntu24.04_amd64.deb mysql-community-server-core_8.4.0-1ubuntu24.04_amd64.deb mysql-community-server_8.4.0-1ubuntu24.04_amd64.deb mysql-server_8.4.0-1ubuntu24.04_amd64.deb
当执行安装mysql-community-server的deb包时会弹出粉色的密码设置弹框,按照如下方式设置密码:
关于Ubuntu24上安装MySQL8.0就完成了,我们可以通过
systemctl status mysql
来查看MySQL的启动情况了,具体服务情况则请看下章的MySQL服务基本命令。
安装完成后会出现如下一些MySQL文件,可通过
find / -name mysql
命令来查看,正常都是包含如下文件的,若有缺失的话可以考虑是不是安装过程中报错了,文件具体如下:
/etc/mysql
这是MySQL的主配置目录,存放MySQL服务器的配置文件('my.cnf文件就在这')。
/var/lib/mysql
这是MySQL数据库的数据存储目录,包含实际的数据库文件('重要的目录,我们创建的数据库数据都在这')。
/var/lib/mysql/mysql
这是MySQL系统数据库mysql的专用目录。
/var/log/mysql
这是MySQL的日志目录,存放MySQL服务器的日志文件。
/usr/lib/mysql
这是MySQL库文件的存储目录。
/usr/bin/mysql
这是MySQL客户端工具的可执行文件位置。
/usr/include/mysql
这是MySQL开发库的头文件存放位置,用于开发与MySQL交互的应用程序。
/usr/include/mysql/mysql
这个子目录通常包含MySQL库的更具体的头文件。
(二):Ubuntu22安装MySQL5.7
安装MySQL5.7其实和上面刚说的一样,只不过有细微的差异,比如安装mysql-community-client则需要libtinfo5依赖。下面我就针对差异的进行说明。
必须的依赖下载:
libtinfo5_6.3-2_amd64.deb依赖包直达地址
libmecab2_0.996-14build9_amd64.deb依赖包直达地址
按照顺序依次安装:
'安装顺序(必须按照这个顺序、且命令需要一条一条复制执行):'
dpkg -i libtinfo5_6.3-2_amd64.deb
dpkg -i libmecab2_0.996-14build9_amd64.deb
dpkg -i mysql-common_5.7.42-1ubuntu18.04_amd64.deb
dpkg -i mysql-community-source_5.7.42-1ubuntu18.04_amd64.deb
dpkg -i libmysqlclient20_5.7.42-1ubuntu18.04_amd64.deb
dpkg -i libmysqlclient-dev_5.7.42-1ubuntu18.04_amd64.deb
dpkg -i libmysqld-dev_5.7.42-1ubuntu18.04_amd64.deb
dpkg -i mysql-community-client_5.7.42-1ubuntu18.04_amd64.deb
dpkg -i mysql-client_5.7.42-1ubuntu18.04_amd64.deb
dpkg -i mysql-community-server_5.7.42-1ubuntu18.04_amd64.deb
dpkg -i mysql-server_5.7.42-1ubuntu18.04_amd64.deb
'若想汇总成一条命令则需要如下方式(也得注意包的顺序):'
dpkg -i libtinfo5_6.3-2_amd64.deb libmecab2_0.996-14build9_amd64.deb mysql-common_5.7.42-1ubuntu18.04_amd64.deb mysql-community-source_5.7.42-1ubuntu18.04_amd64.deb libmysqlclient20_5.7.42-1ubuntu18.04_amd64.deb libmysqlclient-dev_5.7.42-1ubuntu18.04_amd64.deb libmysqld-dev_5.7.42-1ubuntu18.04_amd64.deb mysql-community-client_5.7.42-1ubuntu18.04_amd64.deb mysql-client_5.7.42-1ubuntu18.04_amd64.deb mysql-community-server_5.7.42-1ubuntu18.04_amd64.deb mysql-server_5.7.42-1ubuntu18.04_amd64.deb
当安装mysql-community-server
时也会有弹框,提示我们输入密码和确认密码,输入完成以后直接回车即可安装完成,完成后可以通过systemctl status mysql
来查看MySQL状态。
关于安装后的MySQL文件目录有哪些可以参考上面MySQL 8.4 安装后的文件,上面有的,这里安装的MySQL也都有。
(三):Centos7安装MySQL8.4
首先需要检查是否安装了mariadb(CentOS7默认安装,Centos6),如存在则卸载mariadb;因为以前的Linux系统中数据库大部分是MySQL,不过自从被sun收购之后,就没有集成在centos这些开源Linux系统中了,那么如果想用的话就需要自己安装了,首先centos7已经不再默认提供MySQL,因为收费了你懂得,所以内部集成了mariadb,而安装 MySQL 的话可能会和mariadb的文件冲突,所以需要先卸载掉mariadb。
⭐卸载自带的mariadb:
rpm -qa | grep mariadb
rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps
安装所需的依赖:
一般都是最新版了不需要更新,若是如下的图片版本则不用再次安装和更新了,因为已经是最新了:
rpm -qa | grep libaio
和 rpm -qa | grep net-tools
若在Centos7上查询版本不对的话则需要通过离线安装或者在线更新安装的方式,保证最新版。
libaio-0.3.109-13.el7.x86_64
net-tools-2.0-0.25.20131004git.el7.x86_64
若有网的话直接执行如下命令即可:
yum install libaio
yum install net-tools
没网的话则执行如下命令;
卸载电脑自带的其它版本libaio、net-tools(由于我是最新版,所以把最新版下载后再安装):
卸载:
rpm -e --nodeps libaio-0.3.109-13.el7.x86_64
rpm -e --nodeps net-tools-2.0-0.25.20131004git.el7.x86_64
安装刚才下载的依赖:
rpm -ivh libaio-0.3.109-13.el7.x86_64.rpm
rpm -ivh net-tools-2.0-0.25.20131004git.el7.x86_64.rpm
⭐安装MySQL包:
'安装顺序和依赖关系必须依次为:common → libs → client → server'
'注意:其中ivh代表:i-install安装;v-verbose进度条;h-hash哈希校验;'
'安装顺序(必须按照这个顺序,可以直接复制如下6条语句直接执行):'
## 若没有PHP需求则最后一条命令无需执行
rpm -ivh --force --nodeps mysql-community-common-8.4.0-1.el7.x86_64.rpm
rpm -ivh --force --nodeps mysql-community-icu-data-files-8.4.0-1.el7.x86_64.rpm
rpm -ivh --force --nodeps mysql-community-client-plugins-8.4.0-1.el7.x86_64.rpm
rpm -ivh --force --nodeps mysql-community-libs-8.4.0-1.el7.x86_64.rpm
rpm -ivh --force --nodeps mysql-community-client-8.4.0-1.el7.x86_64.rpm
rpm -ivh --force --nodeps mysql-community-server-8.4.0-1.el7.x86_64.rpm
rpm -ivh --force --nodeps mysql-community-libs-compat-8.4.0-1.el7.x86_64.rpm
'查看安装的MySQL版本:'
mysql --version
mysql Ver 8.4.0 for Linux on x86_64 (MySQL Community Server - GPL)
mysqladmin --version
mysqladmin Ver 8.4.0 for Linux on x86_64 (MySQL Community Server - GPL)
启动MySQL服务和查看状态:systemctl start mysqld
systemctl status mysqld
(四):Centos7安装MySQL5.7
关于MySQL5.7的安装也是和上面的步骤一样,但是关于rpm包的安装顺序是有变动了,下面就讲讲关于包的安装的顺序;关于卸载自带的mariadb
和安装所需的依赖
和上面一样的,这里就不再阐述。
⭐安装MySQL包:
'安装顺序(必须按照这个顺序,可以直接复制如下5条语句直接执行):'
## 若没有PHP需求则最后一条命令无需执行
rpm -ivh --force --nodeps mysql-community-common-5.7.44-1.el7.x86_64.rpm
rpm -ivh --force --nodeps mysql-community-libs-5.7.44-1.el7.x86_64.rpm
rpm -ivh --force --nodeps mysql-community-client-5.7.44-1.el7.x86_64.rpm
rpm -ivh --force --nodeps mysql-community-server-5.7.44-1.el7.x86_64.rpm
rpm -ivh --force --nodeps mysql-community-libs-compat-5.7.44-1.el7.x86_64.rpm
'查看安装的MySQL版本:'
mysql --version
'启动MySQL服务和查看状态:'
systemctl start mysqld 和 systemctl status mysqld
五:MySQL服务状态处理
到这里我们已经通过离线包的方式完成了安装,接下来就要需要掌握基本的MySQL启动和关闭命令,也就区区几个命令,都是通过systemctl
来控制,具体如下:
'千万要注意:'
'在ubuntu下的MySQL服务名为‘mysql.service’'
'但在centos下的MySQL服务名为‘mysqld.service’'
'基本命令:'
systemctl status mysql.service 【查询MySQL在系统的状态】
systemctl start mysql.service 【启动MySQL服务】
systemctl stop mysql.service 【关闭MySQL服务】
systemctl restart mysql.service 【重启MySQL服务】
ps -ef | grep mysql 【查看MySQL进程】
'其它命令(开机自启):'
# 查询MySQL服务是否是自启动
systemctl list-unit-files | grep mysql.service
enabled:当前为开机自启动
disable:开机后不会自启动
# 设置开机自启动
systemctl enable mysql.service
# 设置开机不自启动
systemctl disable mysql.service
六:设置MySQL远程登录访问
'开始修改密码:'
ALTER USER 'root'@'localhost' IDENTIFIED BY '1234';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
(报错:不符合策略,其实要修改的密码为8位并且包含特殊字符、大小写字母、数字)
'没办法只能先修改一个复杂密码:'
ALTER USER 'root'@'localhost' IDENTIFIED BY 'aaAA$$!!66';
'查看密码策略:'
show variables like 'validate_password%';
+-------------------------------------------------+--------+
| Variable_name | Value |
+-------------------------------------------------+--------+
| validate_password.changed_characters_percentage | 0 | # 旧密码重复度
| validate_password.check_user_name | ON | # 是否验证用户名
| validate_password.dictionary_file | | # 密码策略文件,策略为STRONG才需要
| 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 | # 特殊字符至少一个
+-------------------------------------------------+--------+
'修改策略:'
set global validate_password.policy=0; # 关闭密码复杂性策略(LOW)
set global validate_password.length=4; # 设置密码复杂性要求密码最低长度为4
'随后就可以修改灵魂密码(线上可不能设置这种简单的):'
ALTER USER 'root'@'localhost' IDENTIFIED BY '1234';
'其实ubuntu上安装MySQL时默认是未开启密码校验功能的,但是反观centos7上安装时则默认是开启状态。'
'若想了解密码校验插件可以参考如上示例,或者跳转对应给出的:《MySQL安装密码校验插件及说明》一文。'
'Ⅰ:我们电脑需要ping一下远程的IP地址是否是网络畅通的:'
ping xxx.xxx.xxx.xxx
'Ⅱ:确保当前MySQL端口已被放开或者关闭了防火墙:'
# 红帽派系(RedHat、Centos7)方式的防火墙操作(firewalld.service):
查看防火墙状态:systemctl status firewalld.service
开启防火墙:systemctl start firewalld.service
关闭防火墙:systemctl stop firewalld.service
若开启了防火墙需要开启3306端口:firewall-cmd --zone=public --add-port=3306/tcp --permanent
更新防火墙规则:firewall-cmd --reload
# Debian派系(Debian、Ubuntu)方式的防火墙操作(ufw):
查看防火墙状态:ufw status
开启防火墙:ufw enable
关闭防火墙:ufw disable
若开启了防火墙需要开启3306端口:ufw allow 3306 comment "MySQL端口放行"
更新防火墙规则:ufw reload
'Ⅲ:修改MySQL服务允许远程登录:'
SELECT Host, User FROM mysql.user;
UPDATE mysql.user SET Host = '%' WHERE User = 'root';
flush privileges;
'说明:`%`是个通配符,Host=192.168.1.%;那么就表示只要是IP地址为"192.168.1.*"的客户端都可以连接。'
'如果`Host=%`,表示所有IP都有连接权限。'
'注意:生产环境下不推荐将host设置为%,这样做会存在安全问题,具体的设置可以根据生产环境的IP进行设置。'
关于Ubuntu22安装的MySQL5.7额外设置:\color{#f00}{关于Ubuntu22安装的MySQL5.7额外设置:}关于Ubuntu22安装的MySQL5.7额外设置:
修改配置文件:vim /etc/mysql/mysql.conf.d/mysqld.cnf
修改完重启MySQL:systemctl restart mysql
七:在线安装MySQL
有网的情况下,通过在线方式安装MySQL是特别爽的(前提是网络够快且网络不被墙的情况下),只需简单几条命令即可安装一个MySQL服务,下面我就针对在Ubuntu 24.04 LTS
和 Centos7
两个平台来各种安装MySQL。
下载源地址:MySQL的Apt源下载、MySQL的Yum源下载
MySQL官方通过Apt和Yum方式安装文档:Apt安装文档、Yum安装文档
(一):通过 apt 方式安装
通过apt方式安装的话,首先我们得有一台Ubuntu或者Debain服务器了,这里我就以Ubuntu 24.04 LTS
服务器说明(在Debain也是可以正常安装),按照如下命令依次执行:
'Ⅰ:添加MySQL官方自带的Apt下载源'
1:去官方下载源文件:
sudo wget -i -c -P /home https://repo.mysql.com//mysql-apt-config_0.8.32-1_all.deb
2:在ubuntu中安装刚才下载的源【会出现配置弹框,让你配置要安装啥MySQL版本】:
sudo apt-get install /home/mysql-apt-config_0.8.32-1_all.deb
非必要命令:
>> 查看安装的MySQL配置源
ls /etc/apt/sources.list.d/
mysql.list ubuntu.sources ubuntu.sources.curtin.orig
'Ⅱ:修改需要安装的MySQL版本(一般无需执行此命令,使用默认即可,但是想要其它MySQL版本方式则需要执行如下命令)'
1:更改MySQL产品版本【会出现一个和上面一样的配置弹框】:
sudo dpkg-reconfigure mysql-apt-config
'Ⅲ:通过MySQL源来加载所选的包列表:'
sudo apt-get update
'Ⅳ:使用Apt安装MySQL:'
sudo apt-get install mysql-server
'注:若安装是弹出“Enter root password:”则是密码输入框,输入两次即可,后面登录MySQL则使用此密码。'
'注:若安装是未弹出密码输入框,那么用户则需要通过无密码登录root用户,进去再修改密码。'
到这里我们就已经通过Apt方式成功安装了MySQL,可以通过
systemctl status mysql
来查看MySQL状态;关于后续的登录以及设置远程登录、密码修改等等则参考上面第五章和第六章
。
还有要注意的是,使用在线的方式下载安装,官方源现在只提供了MySQL8.4(LTS)的方式安装,若需要以前版本可以通过上面的离线方式安装。
(二):通过 yum 方式安装
使用yum方式来安装MySQL,大部分都是在Centos或RedHat服务器,但是随着Centos7的闭源,现在大部分服务器还是慢慢选择了如Debain和Ubuntu,但是这里也说一下在Centos7中使用yum安装MySQL服务。
'Ⅰ:添加MySQL官方自带的Apt下载源'
1:去官方下载源文件:
wget -i -c -P /home https://repo.mysql.com//mysql84-community-release-el7-1.noarch.rpm
2:在Centos7中安装刚才下载的源
yum localinstall /home/mysql84-community-release-el7-1.noarch.rpm
3:检查MySQL源是否配置安装成功【源文件都存储在:/etc/yum.repos.d 目录下】:
yum repolist enabled | grep mysql.*-community
mysql-8.4-lts-community/x86_64 MySQL 8.4 LTS Community Server 23
mysql-connectors-community/x86_64 MySQL Connectors Community 258
mysql-tools-8.4-lts-community/x86_64 MySQL Tools 8.4 LTS Community 4
说明【每一行的后面是对应的包数量】:
第一行是 启用 MySQL 8.4 LTS 社区版本下载服务器仓库。
第二行是 启用 MySQL 社区版连接器的仓库。
第三行是 启用 MySQL 8.4 LTS 社区版本工具的仓库。
'Ⅱ:更换MySQL源的下载为MySQL8.0的服务:'
注:默认是安装如上打印的MySQL-8.4-LTS版本的MySQL,如果想切换MySQL8.0则需要执行第Ⅱ部分。
注:若想默认安装最新的MySQL-8.4-LTS则忽略第Ⅱ部分。
1:修改配置文件
vim /etc/yum.repos.d/mysql-community.repo
# 开启MySQL-80版本配置修改
[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch
enabled=1 # 0禁用 1开启
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2023...
# 关闭MySQL-8.4-LTS版本配置修改
[mysql-8.4-lts-community]
name=MySQL 8.4 LTS Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.4-community/el/7/$basearch
enabled=0 # 0禁用 1开启
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2023
2:验证修改的下载源引导配置是否正确
yum repolist all | grep mysql
mysql-connectors-community/x86_64 MySQL Connector 启用: 258
mysql-tools-8.4-lts-community/x86_64 MySQL Tools 8.4 启用: 4
mysql80-community/x86_64 MySQL 8.0 Commu 启用: 503
....
'Ⅲ:使用yum安装MySQL服务:'
yum install mysql-community-server
注:会按照之前配置的版本进行下载,下载安装时会提示是否继续,输入y即可。
到这里我们就已经通过yum方式成功安装了MySQL,可以通过systemctl status mysqld
来查看MySQL状态;关于后续的登录以及设置远程登录、密码修改等等则参考上面第五章和第六章
。
使用yum这种方式只能安装MySQL8.0和MySQL8.4版本,若想安装如MySQL5.7版本则需要使用上面详细说明的离线方式安装。
八:Windows上通过解压方式安装
在Windows界面化安装相对简单,一般刚接触MySQL的人会选择在Windows上安装MySQL,而面对企业的环境还是选择Linux的居多,废话不多说,参考上面的下载章节,下载Windows的解压版后直接上手:
下载的MySQL8.4解压包:mysql-8.4.2-winx64.zip
,并解压在:C:/mysql-8.4.2-winx64
;然后在解压的目录里创建一个my.ini
文件,并设置如下内容(注释的内容可有可无):
[mysqld]
# 设置MySQL端口,默认不设置就是3306
port = 3306
# 设置MySQL的安装目录
basedir=C:/mysql-8.4.2-winx64 # 数据库的解压包位置
datadir=C:/mysql-8.4.2-winx64/data # 数据库存储的数据目录
##### 字符集配置(推荐如下两种)
character-set-server = utf8mb4 # 设置服务器的默认字符集
collation-server = utf8mb4_general_ci # 设置服务器的默认排序规则
##### 连接配置和连接池配置
max_connections = 150 # 最大连接数(若这个连接数连接上线了,MySQL会报:Too many connections)
# thread_cache_size = 10 # 线程池大小(客户端连接断开,不会立即销毁,而是放到线程池复用)
##### 网络超时配置(防止长期空闲的连接占用资源)
# wait_timeout = 600 # 600秒(10分钟)后关闭空闲的非交互式连接
# interactive_timeout = 300 # 300秒(5分钟)后关闭空闲的交互式连接
##### SQL开启严格模式配置(推荐使用严格模式,因为这些模式可能会在今后的某个版本中变为默认行为)
sql_mode=STRICT_ALL_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO
## 说明:
## STRICT_ALL_TABLES:插入或更新时无效或不正确的数据时,MySQL会对操作的表(无论是否支持事务)终止操作。
## NO_ZERO_DATE:代表禁止插入或更新日期为'0000-00-00'的数据。
## NO_ZERO_IN_DATE:禁止插入或更新日期中部分字段为零的值,例如'2023-00-01'或'2023-12-00'。
## ERROR_FOR_DIVISION_BY_ZERO:将任何数除0则会报错。
##### 配置日志文件(若开启此配置时需要手动创建/logs/error.log 文件)
# log_error = C:/mysql-8.4.2-winx64/logs/error.log # 错误日志路径(开关服务、运行错误等)
##### 配置慢查询(若开启此配置时需要手动创建/logs/slow.log文件)
# slow_query_log = 1 # 启用慢查询日志
# long_query_time = 2 # 定义慢查询时间(秒)
# slow_query_log_file = C:/mysql-8.4.2-winx64/logs/slow.log # 慢查询日志路径
##### 缓存配置(一般默认不设置,按照实际需求来调整,没需求默认即可)
## InnoDB缓冲池用于缓存表和索引的数据,减少频繁IO操作,建议将其设置为物理内存的50%-80%
# innodb_buffer_pool_size = 1G # InnoDB 缓冲池大小
## InnoDB重做日志文件大小。日志越大,恢复时可处理的事务数据量就大,但日志文件太大也会延长恢复时间。默认48M
# innodb_log_file_size = 256M # InnoDB 日志文件大小
## 控制InnoDB在事务提交时将日志刷新到磁盘的频率。
# innodb_flush_log_at_trx_commit = 1 # 日志刷新策略(关于redo日志刷入)
## 控制每个InnoDB表是否使用单独的表空间文件。
## 1:每个表使用一个单独的表空间文件(推荐设置)。
## 0:所有表共享一个表空间文件(老的模式,可能在某些情况下会导致碎片问题)。
# innodb_file_per_table = 1 # 每个表单独使用一个表空间文件
##### 配置默认身份验证插件
# mysql_native_password是MySQL 8.0以前版本的默认身份验证插件,使用SHA-1算法。
# caching_sha2_password是MySQL 8.0及更高版本中的默认插件,使用SHA-256算法,安全性较高。
# 8.0版本以上默认使用的是:caching_sha2_password;8.0以前的版本默认是mysql_native_password。
# 若当前的是8.0以上的服务端程序,而远程的客户端版本是8.0之前版本,那需配置:mysql_native_password=ON。
# 因为服务端是8.0之后版本,而客户端是8.0之前版本,而服务端的身份验证是SHA-256算法,则可能连接不上。
# 默认8.0以上版本下的mysql_native_password处于禁用状态,8.4版本需要如下方式开启才可以使用
# mysql_native_password=ON
## 注意:MySQL8.0之后,以及8.4之前开启mysql_native_password则需要使用如下方式
# default_authentication_plugin=mysql_native_password
配置MySQL环境变量:\color{#f00}{配置MySQL环境变量:}配置MySQL环境变量:
初始化MySQL数据库:\color{#f00}{初始化MySQL数据库:}初始化MySQL数据库:
'Ⅰ:打开命令提示符(以管理员身份运行),并跳转到指定目录:'
cd C:\mysql-8.4.2-winx64\bin
C:
'Ⅱ:初始化MySQL数据目录:'
注:若报缺少组件的话,通过下面的补充来解决后,再执行这个代码:
mysqld --initialize --console
'补充:由于找不到VCRUNTIME140_1.dll,无法继续执行代码...'
报这个错的话,代表当前电脑缺少Visual C++运行时库的相关组件,下载安装即可,下载地址如下:
https://aka.ms/vs/17/release/vc_redist.x64.exe 【64位操作系统】
https://aka.ms/vs/17/release/vc_redist.x86.exe 【32位操作系统】
安装MySQL服务和启动:\color{#f00}{安装MySQL服务和启动:}安装MySQL服务和启动:
'Ⅰ:将MySQL安装为Windows服务:'
mysqld --install MySQL
Service successfully installed.
'Ⅱ:启动服务'
net start MySQL
MySQL 服务正在启动 ..
MySQL 服务已经启动成功。
这时MySQL服务就正常启动了,也获取到了临时的登录密码,登录后还得进行密码的修改,这后面的部分请参考上面的六:设置MySQL远程登录访问
一章节,上面有说明如何更改密码和如何设置远程登录。
补充:如何彻底卸载通过解压包安装的MySQL\color{#f00}{补充:如何彻底卸载通过解压包安装的MySQL}补充:如何彻底卸载通过解压包安装的MySQL
'卸载Window-10通过解压包方式安装的MySQL8.4(LTS)'
'Ⅰ:停止MySQL服务并删除注册的MySQL服务'
net stop mysql
sc delete mysql
'Ⅱ:删除之前解压的哪些MySQL目录文件(就是安装的目录,删除前请备份!)'
我的MySQL目录在:C:\mysql-8.4.2-winx64;删了即可。
'Ⅲ:删除环境变量'
右键点击 "此电脑" > "属性" > "高级系统设置" > "环境变量"。
找到系统变量Path后删除之前配置在里面的路径即可。
'Ⅳ:清理注册表'
虽然不一定需要,但如果你想彻底清理注册表中的MySQL相关项,则可以执行如下步骤:
打开注册表编辑器:按Win + R,输入regedit,然后按回车。
查询注册表中是否存在此文件,存在则删除:
'注:有的版本是MySQL文件夹,有的版本(如MySQL8.4)是MySQLD Service文件夹'
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MySQL
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\MySQL
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL
注:注册表中的ControlSet001,ControlSet002,不一定是001和002,可能是ControlSet005、006之类
转载自:https://juejin.cn/post/7409675898326597671