MySQL安装配置卸载
一、MySQL产品分类
官网链接,拉到底,从产品和地图入手。
上拉可以看到部分产品介绍,这里补全标准版和经典版
MySQL HeatWave:
这是MySQL官方提供的云服务,直接部署在云上,运维更加简单,能够灵活进行扩缩容,节省一定的成本。
一般用于非金融企业,金融企业对数据的安全性要求更高,一般都是部署在企业的私有云上。
MySQL 企业版:
是MySQL的付费版本,提供了高级功能、管理工具和技术支持。
可实现高水平的MySQL可扩展性、安全性、可靠性和无故障运行时间。
MySQL 标准版:
是最基本的商业版本,提供了MySQL数据库的核心功能,包括数据管理、多线程处理和高可用性等。适用于小规模和中等规模的应用程序,对于企业级别的应用程序可能需要更高级别的MySQL版本。
MySQL 经典版:
这是另一个商业版本,提供了一系列经典数据库功能和特性。与标准版相似,但可能包含更多针对特定应用场景的优化和功能。
MySQL Cluster CGE:
这是一个集群版本的MySQL,提供了高可用性、可扩展性和数据一致性。
适用于需要处理大量并发读写操作的应用程序,如Web应用程序、电子商务网站等。
MySQL 嵌入式 (OEM/ISV):
这是一个面向原始设备制造商(OEM)和独立软件供应商(ISV)的版本。
允许将MySQL作为嵌入式数据库用于各种硬件和软件产品中,以提高产品的竞争力、加快推向市场和降低销售成本。
然后,点击网站地图,查看官网提供了哪些内容
二、MySQL官网下载
5.7在线安装msi下载页面/离线安装zip下载界面,或者通过下方分析逐步选择。
但是,我们需要的是社区版。找到下载那一列,点击第一个’MySQL Community Server’。
MySQL Community Server:
这是MySQL的社区版本,是开源的,并由社区维护。它提供了基本的数据库功能,适合个人和小型项目使用。
MySQL NDB Cluster:
这是一个在无共享体系结构中实现的内存数据库集群技术。它能够提供非常便宜的硬件,并支持最小的特定要求。NDB Cluster的特点是没有任何单点故障,并且数据存储在数据节点中,可以从集群中的所有其他SQL节点直接访问。此外,它还支持数据镜像和滚动重启等功能。
MySQL Shell:
这是MySQL官方推出的一个交互式命令行工具,支持JavaScript、Python和SQL三种语言。它提供命令行界面用于管理MySQL服务器和数据库。此外,MySQL Shell还提供了数据库连接管理、SQL执行、数据备份和恢复、数据库管理和监控等功能。
MySQL Router:
这是一个轻量级中间件,是InnoDB Cluster的一部分,旨在在应用程序和后端MySQL服务器之间提供透明路由。它主要解决MySQL主从库集群的高可用、负载均衡和易扩展等问题。MySQL Router为数据库集群提供一个虚拟IP作为应用程序单一连接点,通过这个单一的连接点实现负载均衡、读写分离和故障转移等数据库高可用方案。
MySQL Workbench(另一篇介绍使用):
图形化MySQL管理工具,支持多种操作系统,包括Windows、Linux和macOS等。它提供了数据建模、SQL开发、数据库管理和数据库维护等多个功能模块。用户可以使用它进行数据建模、创建新的数据库图示、建立数据库文档以及进行复杂的MySQL迁移等操作。
跳转后进入版本选择页面
然后选择需要的版本,因为之前开发的服务一直使用5版本,所以这里选了5.7,如果没要求可以使用8版本,8版本新增了开窗函数和全文检索等功能,在性能和安全上也有改进。下载的时候选择msi文件,安装的时候简单。点击下图的跳转按钮下载。如果离线安装,选择合适的版本,直接点击download
ZIP Archive:这通常是指正式版的安装包,包含了用于安装MySQL的所有必要文件,适用于生产环境或需要稳定运行的场景。
ZIP Archive, Debug Binaries & Test Suite:这个版本包含了用于调试的二进制文件和测试套件。通常这是测试或开发版本的安装包,其中包含了一些用于开发和测试MySQL的额外工具和文件。
没用镜像,下载的速度也很快。
三、MySQL镜像下载
也可以使用阿里云镜像下载。
我们选择下载版本时集中在这,点击进入版本具体的版本选择,怎样根据名称选择合适的版本?
//5.4版本解释
1.MySQL-版本号.glibc23.src.rpm:src.rpm这类文件是源码包,用于构建和编译MySQL数据库的二进制可执行文件,适用于linux。
2.MySQL-client-版本号.glibc23.xxx系统.rpm:这一类是MySQL数据库的客户端二进制RPM包,适用于基于xxx系统。
安装此RPM包将安装MySQL的客户端工具,如mysql和mysqladmin等。
3.MySQL-debuginfo-版本号.glibc23.xxx系统.rpm:表示此安装包包含了调试信息。
4.MySQL-devel-版本号.glibc23.xxx系统.rpm:这表示该RPM是为开发人员准备的,通常包含了头文件、静态库等。
5.MySQL-embedded-版本号.glibc23.xxx系统.rpm:嵌入式版本,可以直接嵌入到应用程序中,适用于单用户或低并发访问、简单数据库操作和应用程序集成的场景。
6.MySQL-server-版本号.glibc23.xxx系统.rpm:服务器版本,适用于需要多用户并发访问、复杂事务处理和高性能查询优化的场景。
7.MySQL-shared-版本号.glibc23.xxx系统.rpm:是一个仅包含共享库文件的特殊软件包,主要用于开发人员和其他软件程序的依赖项。
8.MySQL-test-版本号.glibc23.xxx系统.rpm:包含用于测试MySQL功能和性能的测试工具和脚本的测试安装包
9.mysql-版本号-beta-xxx系统和版本.tar.gz:beta版本是软件发布之前的测试版本,通常在正式发布之前会进行公测或内测,不适合在生产环境中使用,仅供用户测试和提供反馈意见。
10.mysql-版本号-beta-xxx系统和版本.压缩格式.asc:使用PGP签名验证文件完整性和签名
11.mysql-版本号-beta-xxx系统和版本.压缩格式.md5:使用md5哈希值验证文件完整性
12.mysql-essential-版本号-beta-xxx系统和版本.msi:精简版,只包含最基本的功能和组件
13.mysql-noinstall-版本号-beta-xxx系统和版本.zip:无需安装,解压配置即可使用
//5.5版本,重复的忽略
1.MySQL-版本号-xxx系统和版本.rpm-bundle.tar:带有RPM包捆绑的安装文件,可能包含核心包、库函数、共享包和测试包等
//5.6版本
1.libmysqlclient-版本号-xxx系统和版本.deb:用于开发MySQL客户端应用程序的库的Debian包文件
2.mysql-common_版本号-xxx系统和版本.deb:通用组件的Debian包文件
3.mysql-testsuite_版本号-xxx系统和版本.deb:测试套件
//5.7
1.mysql-community-libs-compat-版本号.xxx系统和版本.rpm:社区版的兼容性库
//6.0
1.mysql-版本号-alpha-xxx系统和版本.tar.gz:alpha版本是开发版本,可能不稳定
//8.0
1.mysql-community-client-core_版本号-xxx系统和版本.deb:社区版的客户端核心组件
2.mysql-community-icu-data-files-版本号-xxx系统和版本.rpm:这是MySQL社区版的ICU(国际组件,用于支持多语言)数据文件
8.0版本可以下载以下安装文件
5.7版本可以下载以下安装文件
四、安装文件校验
4.1windows平台
如果是windows系统,下载msi类型的安装文件后若需要校验数据完整性,把对应版本的.md5文件下载下来。
搜索 “PowerShell” 并点击打开应用程序,输入进入下载文件的目录的命令
cd e:\tools
,例如下载的文件都放在这个目录下
Get-FileHash mysql-5.7.36-winx64.msi -Algorithm MD5
,获取哈希值的命令,输出如下
然后打开下载的.md5文件进行比较,该文件内容如下:
3ebf0c7a3fa904df997a7a71edf28dc2 mysql-5.7.36-winx64.msi
如果安装了PGP软件,也可以使用.asc文件校验,如果安装了Git for Windows等工具可以直接使用工具校验。
4.2linux平台
如果是linux系统,下载对应的tar.gz类型的安装文件和对应版本的.md5文件
cd /usr/local/tools
,例如下载的文件都在这个目录下
md5sum -c mysql-5.7.36.tar.gz.md5
,校验文件,如果输出ok,那么下载文件没有出错
五、MySQL安装配置
5.1windows平台
1.联网环境下,使用msi文件安装
在开始安装前强调一点,安装文件不要删,它在安装完成后还有修复、删除、添加删除组件等功能
1.镜像安装
双击mysql-5.7.36-winx64.msi文件,然后出现了警告’This application requres Visual Studio 2013 x64Redistributable. Please install the Redistributable thenrun this installer again.‘,64位机出现的是这个警告,32位机可能会出现’This application requires Visual Studio 2013 x86Redistributable. Please install the Redistributable thenrun this installer again.’,解决方法一样:
micsoft官网,下载缺失的应用程序。Visual Studio 2013 x64 Redistributable 是一些由 Microsoft 提供的库文件,这些库文件包含了为 Visual Studio 2013 编写的应用程序所需的一些公共函数和工具。
如果是x86下载第一个,64位机下载第二个。
下载完成后,双击开始安装,勾选同意,然后点击’install’安装,允许更改,然后安装完成。
此时双击MySQL安装文件开始安装。
依次点击next,勾选同意框,再点击next
其中typical是基础发行版,包含核心的数据库管理系统和一些常用的功能和工具,complete是完整发行版,包含了数据库管理系统的所有组件、功能和工具,Custom 版本相比 Typical 版本更加灵活和可定制。它允许用户根据自己的需求选择安装和配置需要的组件,和功能。此处选择complete版本,然后点击install,允许更改,最后等待安装,安装完成后点击finish。
2.官网安装
双击mysql-installer-community-5.7.44.0.msi文件,允许设备更改,
Server only:只安装MySQL服务器产品。
Client only:只安装MySQL客户端产品,没有服务器。这意味着只会安装如MySQL Workbench、命令行客户端等客户端工具,不会安装MySQL服务器。
Full:安装所有包含的MySQL产品和功能。
Custom:手动选择应该安装在系统上的产品。这是一个自定义的安装方式,用户可以根据自己的需求选择要安装的MySQL产品。
首先选择安装服务器,
然后选择应用,这些应用的具体功能,在第二部分有说明,如果没有navicat等工具,可以安装自带的MySQL workbench,也可以将所有的应用都添加安装。最后一部分是文档,如果需要也可以加入下载。选择完成后,一直点击next,等待安装。
在安装完成后点击next,可以看到已经到Product Configuration步骤,继续点击next
然后会跳到这个界面,开始配置数据库,端口若不修改,则点击next
设置密码,找个地方把密码记下来,密码丢失会比较麻烦,可以暂时不添加用户,点击next
MySQL服务器需要在一个特定的用户账户下运行,系统账户(root)权限很高,方便管理但是风险很高,非特权账户权限分离但需要额外配置,暂时先不做修改,点击next
为了确保数据的安全性,需要设置适当的文件和目录权限。自动授予完全访问权限将为运行Windows服务的用户和系统管理员组授予对C:\ProgramData\MySQL\MySQL Server 5.7Data目录及其内容的完全访问权限,其他用户和组将无法访问这些文件和目录。或者手动配置访问级别,可以根据需要为特定用户或组设置访问权限。暂不修改,点击next
点击execute执行配置
配置完成后,跳回产品配置界面,点击next,然后安装完成,点击finish
3.运行
3.1有MySQL服务
打开任务管理器,点击服务,查看MySQL的运行情况,如果已停止,右键,选择开始,启动服务
然后点击最左侧的进程,查看mysqld.exe是否在运行
如果没有运行,切换到’C:\Program Files\MySQL\MySQL Server 5.7\bin’安装目录,找到mysqld.exe双击运行。
有一个区别,mysql.exe 是 MySQL 客户端工具的可执行文件,mysqld.exe 是 MySQL 服务器进程的可执行文件,mysqld.exe 通常作为一个 Windows 服务运行,可以通过服务管理器进行控制和管理。
使用数据库有两种方式,第一种在电脑的菜单双击MySQL5.7 command line client-unicode运行,unicode表示字符集
输入密码,密码正确即可进入mysql开始使用数据库
记得写sql时加上";"
第二种方式,在’C:\Program Files\MySQL\MySQL Server 5.7\bin’安装目录的地址栏中输入cmd然后回车打开命令行界面,,然后使用mysql.exe使用数据库,输入命令mysql.exe -u root -p
,如果不使用root账户登录,那么替换对应的用户名
3.2没有MySQL服务,MySQL无法启动
在尝试安装时,使用镜像安装,安装完成后打开任务管理器发现没有MySQL服务,也没有MySQL57等类似的服务,这是因为服务未注册。参考博客
解决办法:以管理员身份运行命令提示符,然后执行过程如下图:
cd C:\Program Files\MySQL\MySQL Server 5.7\bin
首先切换目录
mysqld --initialize-insecure
初始化data文件夹
net start mysql
启动MySQL
此时再打开任务管理器,可以看到刚刚注册的服务正在运行
2.离线环境下,使用zip文件安装
下载完成后解压到指定目录,例如D盘的mysql文件夹,解压完成后需要一些配置。官网文档
2.1配置
官网文档原文:MySQL looks for options in each location first in the my.ini file, and then in the my.cnf file. However, to avoid confusion, it is best if you use only one file. If your PC uses a boot loader where C: is not the boot drive, your only option is to use the my.ini file. Whichever option file you use, it must be a plain text file.
也就是说如果解压目录不在C盘,那么我们只能选择my.ini文件添加配置
首先需要在解压目录下’D:/mysql’下创建data数据文件夹,然后再新建一个文本文档,添加如下内容,再对文件进行重命名位my.ini。
[mysqld]
# set basedir to your installation path
basedir=D:/mysql
# set datadir to the location of your data directory
datadir=D:/mysql/data
数据文件夹不仅仅要创建,还要初始化。以管理员身份运行命令提示符,切换到安装目录
//这种方式会为root用户生成一个随机的初始密码,并将其标记为已过期。
//这意味着你需要为root用户选择一个新的密码。
bin\mysqld --initialize --console
//这种方式不会为root用户生成密码。这被认为是“不安全的”,
//因为你在将服务器投入生产环境之前需要为该账户及时设置一个密码
bin\mysqld --initialize-insecure --console
//如果使用上述命令报错,将my.ini里的'/'改为'\\',使用如下命令重新运行
bin\mysqld --defaults-file=D:\mysql\my.ini --initialize --console
执行成功时输出如下:
此时data文件夹中会多出文件
2.2启动
以管理员身份运行命令提示符界面,切换到安装目录的bin目录下,执行’mysqld.exe --console’如下:
可以看到当前数据库的版本和占用端口
关闭当前窗口,mysqld.exe进程停止。
如果没使用管理员身份运行是缺少权限的,截图如下:
2.3注册服务
通过2.2的命令运行MySQL,关闭Dos窗口,则服务停止,所以需要将其注册为Windows服务。以管理员身份运行Dos界面,输入如下命令
//意为使用安装目录下的mysqld执行程序安装MySQL57服务,使用my.ini配置文件
"d:\mysql\bin\mysqld" --install MySQL57 --defaults-file=d:\mysql\my.ini
//然后启动服务
net start MySQL57
3.配置环境变量
官网文档:Place your cursor at the end of the text appearing in the space marked Variable Value. (Use the End key to ensure that your cursor is positioned at the very end of the text in this space.) Then enter the complete path name of your MySQL bin directory (for example, C:\Program Files\MySQL\MySQL Server 5.7\bin)
所以打开控制面板-》点击系统-》点击高级系统设置-》点击环境变量-》编辑Path-》点击新建-》粘贴bin的完整目录,然后依次确定,确定,确定。
额外注意一点,该文档末尾提示:You should not add the MySQL bin directory to your Windows PATH if you are running multiple MySQL servers on the same machine.也就是如果运行了多个MySQL服务器不要配置环境变量。
设置完成后,此时任意运行Dos窗口,不用切换到mysqld.exe所在目录,也可使用mysql命令
在运行多个MySQL 服务器的情况下只能使用完整路径使用mysql。
4.开放端口
在本机上安装完成并可以登录MySQL,不代表其它主机也可以连接到此MySQL服务器。
//切库
use mysql;
select host,user,plugin from user;
//给所有主机(%表示所有主机)上的root用户赋予所有权限。同时,设置该用户的密码为password,
//需要改为设置的密码,不要真的使用password
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
//将所有主机上的root用户的身份验证插件设置为mysql_native_password
alter user 'root'@'%' identified with mysql_native_password by 'root';
//设置root用户的密码永远不会过期
alter user 'root'@'%' password expire never;
//刷新权限
flush privileges;
//退出
\quit
//添加MySQL入栈规则
打开控制面板-》防火墙-》高级设置
点击左侧的入栈规则,然后点击右侧菜单的新建规则
选择端口,点击下一步,选择应用于TCP,在本地端口处输入3306
然后一直下一步,到最后一步,可以输入名称如“MySQL3306”点击完成。
配置完成后可以测试用其它主机连接此数据库
至此,Windows平台安装配置MySQL结束。
5.2linux平台
1.在线安装(待补充)
2.离线安装
将安装包上传到系统的安装目录如’/usr/local’,然后在当前目录下解压:
//例如,安装目录为/usr/local
tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
//重命名
mv mysql-5.7.44-linux-glibc2.12-x86_64 mysql
//创建data数据文件夹
mkdir /usr/local/mysql/data/
//创建用户组和用户
sudo groupadd -r -g 306 mysql
sudo useradd -r -g mysql mysql
//赋权
sudo chown -R mysql:mysql /usr/local/mysql/data
//初始化数据库,无密码
sudo /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
//修改配置,在已经有path的情况下也可以用下述的方法添加配置
vi /etc/profile
export PATH="/usr/local/mysql/bin:$PATH"
//重新加载配置文件
source /etc/profile
//验证数据库版本
mysqld --version
输出:mysqld Ver 5.7.44 for linux-glibc2.12 on x86_64 (MySQL Community Server (GPL))
//尝试启动
sudo /usr/local/mysql/support-files/mysql.server start
"报错:mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log',
however file don't exists. Create writable for user 'mysql'.
The server quit without updating PID file (/var/lib/mysql/gle-pdsrv04.pid)"
//创建日志
sudo mkdir -p /var/log/mariadb/
sudo touch /var/log/mariadb/mariadb.log
sudo chown mysql:mysql /var/log/mariadb/mariadb.log
sudo chmod 660 /var/log/mariadb/mariadb.log
//赋权
sudo mkdir -p /var/lib/mysql/
sudo chown -R mysql:mysql /var/lib/mysql/
//重启
sudo /usr/local/mysql/support-files/mysql.server start
//查看配置文件
mysql --help | grep 'my.cnf'
cat /etc/my.cnf
如果文件不存在就创建一个,填入以下内容
//输出:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
!includedir /etc/my.cnf.d
//修改:
datadir=/usr/local/mysql/data
//复制启动命令,添加到服务列表
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
//启动服务
systemctl start mysqld
//若启动失败,查看原因或查看详情
journalctl -xe
查看完成CTRL+Z退出查看
//登录方式一,指定套接字
mysql -u root -S /var/lib/mysql/mysql.sock -p
直接回车,没有密码
//登录方式二,指定ip
mysql -u root -h localhost -p
直接回车,没有密码
//退出数据库
\quit
//如果以上方式都失败,查看MySQL运行状态,停止然后重启再查看
sudo systemctl status mysql
可能输出:mysqld.service - LSB: start and stop MySQL
Loaded: loaded (/etc/rc.d/init.d/mysqld; bad; vendor preset: disabled)
Active: active (exited) ……表示退出了
sudo systemctl stop mysql
sudo systemctl start mysql
sudo systemctl status mysql
输出:mysqld.service - LSB: start and stop MySQL
Loaded: loaded (/etc/rc.d/init.d/mysqld; bad; vendor preset: disabled)
Active: active (running)……此时运行中共
然后尝试重新登录
//查看验证方式
use mysql;
SELECT User, Host, plugin FROM user WHERE User = 'root';
如果输出:| root | localhost | mysql_native_password |表明使用密码登录验证
如果输出: root | localhost | unix_socket|表明使用用户身份验证
3.开放端口
//给用户权限
//登录系统
mysql -u root -h localhost -p
//切库
use mysql;
select host,user,plugin from user;
//给所有主机(%表示所有主机)上的root用户赋予所有权限。同时,设置该用户的密码为password,
//需要改为设置的密码,不要真的使用password
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
//将所有主机上的root用户的身份验证插件设置为mysql_native_password
alter user 'root'@'%' identified with mysql_native_password by 'root';
//设置root用户的密码永远不会过期
alter user 'root'@'%' password expire never;
//刷新权限
flush privileges;
//退出
\quit
//开放端口
//查看防火墙状态
sudo firewall-cmd --state
如果输出显示 "running",则表示防火墙正在运行。
//查看已开放的端口
sudo firewall-cmd --list-ports
//查看已开放的服务
sudo firewall-cmd --list-services
//开放 3306 端口
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
//重新加载防火墙配置
sudo firewall-cmd --reload
配置结束。
六、卸载
6.1Windows镜像安装时卸载
双击安装文件
选择修复,然后repair等待修复,选择卸载等待卸载完成可以重新安装。
6.2Windows官网安装卸载
双击安装文件,点击remove
选择卸载项,点击next
点击执行,等待卸载
在完成后点击finish,卸载完成
6.3Windows压缩包安装卸载
首先通过任务管理器停止注册的服务
然后win+r输入powershell
//输入以下命令删除注册的MySQL服务
sc delete MySQL57
然后关闭窗口,去删除mysql所在的文件夹,可能会在:
D:\mysql
C:\Users<Your Username>\AppData\Roaming\MySQL
C:\Users<Your Username>\AppData\Local\MySQL
所有Windows平台卸载MySQL,如果要彻底删除,加上删除注册表
//删除注册表
win+r键,输入regedit,然后按下回车键。
在注册表编辑器中,导航到以下路径,并删除与MySQL相关的注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\MySQL
HKEY_CURRENT_USER\SOFTWARE\MySQL
6.4Linux压缩包安装卸载
//删除客户端
sudo yum remove mysql-server mysql-client
sudo yum autoremove
输入y
//删除安装目录
sudo rm -rf /usr/local/mysql/
//删除配置文件
sudo rm -rf /etc/my.cnf
sudo rm -rf /var/log/mysql
sudo rm -rf /var/log/mariadb
sudo rm -rf /var/run/mariadb
sudo rm -rf /var/lib/mysql