一、卸载

1.1、查看是否安装过MySQL

  • 如果你是用rpm安装, 检查一下RPM PACKAGE:

    rpm -qa | grep -i mysql # -i 忽略大小写
    
  • 检查mysql service:

    systemctl status mysqld.service
    
  • 如果存在mysql-libs的旧版本包,显示如下:
    在这里插入图片描述

  • 如果不存在mysql-lib的版本,显示如下:在这里插入图片描述

1.2、MySQL的卸载

  1. 关闭 mysql 服务

    systemctl stop mysqld.service
    
  2. 查看当前 mysql 安装状况

    rpm -qa | grep -i mysql
     # 或者
     yum list installed | grep mysql
    
  3. 卸载上述命令查询出的已安装程序

    yum remove mysql-xxx mysql-xxx mysql-xxx mysqk-xxxx
    
  4. 删除 mysql 相关文件

    -查找相关文件

    find / -name mysql
    

    -删除上述命令查找出的相关文件

    rm -rf xxx
    
  5. 删除 my.cnf

    rm -rf /etc/my.cnf
    

二、MySQL的Linux版安装

2.1、MySQL的4大版本

  • MySQL Community Server 社区版本,开源免费,自由下载,但不提供官方技术支持,适用于大多数普通用户。
  • MySQL Enterprise Edition 企业版本,需付费,不能在线下载,可以试用30天。提供了更多的功能和更完备的技术支持,更适合于对数据库的功能和可靠性要求较高的企业客户。
  • MySQL Cluster 集群版,开源免费。用于架设集群服务器,可将几个MySQL Server封装成一个Server。需要在社区版或企业版的基础上使用.
  • MySQL Cluster CGE 高级集群版,需付费。

截止目前,官方最新版本为 8.0.27 。此前,8.0.0 在 2016.9.12日就发布了。
这里主要使用 8.0.25版本

此外,官方还提供了 MySQL Workbench (GUITOOL)一款专为MySQL设计的 ER/数据库建模工具 。它是著名的数据库设计工具DBDesigner4的继任者。MySQLWorkbench又分为两个版本,分别是 社区(MySQLWorkbench OSS)、 商用版 (MySQL WorkbenchSE)。

2.2 、下载MySQL指定版本

1. 下载地址

官网:https://www.mysql.com

2. 打开官网,点击DOWNLOADS

然后,点击 MySQL Community(GPL) Downloads
在这里插入图片描述

3.点击 MySQL Community Server

在这里插入图片描述

4.在General Availability(GA) Releases中选择适合的版本

如果安装Windows 系统下MySQL ,推荐下载 MSI安装程序 ;点击 Go to Download Page 进行下载即可
在这里插入图片描述
Windows下的MySQL安装有两种安装程序

  • mysql-installer-web-community-8.0.25.0.msi下载程序大小:2.4M;安装时需要联网安装组件。
  • mysql-installer-community-8.0.25.0.msi 下载程序大小:435.7M;安装时离线安装即可。推荐

5.Linux系统下安装MySQL的几种方式

5.1 Linux系统下安装软件的常用三种方式:

方式1:rpm命令

使用rpm命令安装扩展名为".rpm"的软件包

.rpm包的一般格式:
在这里插入图片描述

方式2:yum命令

但是需要联网,从 互联网获取 的yum源,直接使用yum命令安装。

方式3:编译安装源码包

针对 tar.gz 这样的压缩格式,要用tar命令来解压;如果是其它压缩格式,就使用其它命令。

5.2.Linux系统下安装MySQL,官方给出多种安装方式

在这里插入图片描述

  • 这里不能直接选择CentOS 7系统的版本,所以选择与之对应的Red Hat Enterprise Linux
  • https://downloads.mysql.com/archives/community/直接点Download下载RPM Bundle全量包。包括了所有下面的组件。不需要一个一个下载了。
    在这里插入图片描述

6. 下载的tar包,用压缩工具打开

在这里插入图片描述

  • 解压后rpm安装包 (红框为抽取出来的安装包)
    在这里插入图片描述

2.3 、CentOS7下检查MySQL依赖

在安装前我们需要检查/tmp临时目录权限(必不可少)

由于mysql安装过程中,会通过mysql用户在/tmp目录下新建tmp_db文件,所以请给/tmp较大的权限。执
行 :

chmod -R 777 /tmp

在这里插入图片描述

安装前,检查依赖

rpm -qa|grep libaio

如果存在libaio包如下:
在这里插入图片描述
没有的话直接yum安装

yum install libaio

如果存在net-tools包如下:

在这里插入图片描述

2.4、CentOS7下MySQL安装过程

1.将安装程序拷贝到/opt目录下

在mysql的安装文件目录下执行:(必须按照顺序执行)

rpm -ivh mysql-community-common-8.0.25-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-plugins-8.0.25-1.el7.x86_64.rpm 

rpm -ivh mysql-community-libs-8.0.25-1.el7.x86_64.rpm 

rpm -ivh mysql-community-client-8.0.25-1.el7.x86_64.rpm 

rpm -ivh mysql-community-server-8.0.25-1.el7.x86_64.rpm
  • 注意: 如在检查工作时,没有检查mysql依赖环境在安装mysql-community-server会报错
  • rpm 是Redhat Package Manage缩写,通过RPM的管理,用户可以把源代码包装成以rpm为扩展名的文件形式,易于安装。
  • -i, --install 安装软件包
  • -v, --verbose 提供更多的详细信息输出
  • -h, --hash 软件包安装的时候列出哈希标记 (和 -v 一起使用效果更好),展示进度条
    安装5.7版本的时候没有第二条命令,也是这样的顺序执行,还有记得改后面得版本,不按这样的顺序执行会出现依赖问题。

2.安装过程截图

在执行第三条命令的时候会出现错误mariadb XXXXX啥的。
在这里插入图片描述

这个时候执行一个命令:yum remove mysql-libs 解决,清除之前安装过的依赖即可

然后我们再执行第三条命令,成功后继续执行接下来的两条
在这里插入图片描述

如上图所示就成功了

3. 查看MySQL版本

执行如下命令,如果成功表示安装mysql成功。类似java -version如果打出版本等信息

mysql --version 
#或
mysqladmin --version

在这里插入图片描述
执行如下命令,查看是否安装成功。需要增加 -i 不用去区分大小写,否则搜索不到。

rpm -qa|grep -i mysql

在这里插入图片描述

4. 服务的初始化

为了保证数据库目录与文件的所有者为 mysql 登录用户,如果你是以 root 身份运行 mysql 服务,需要执行下面的命令初始化:

mysqld --initialize --user=mysql

说明:
--initialize选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过期 ,登录后你需要设置一个新的密码。生成的临时密码会往日志中记录一份。

查看密码:

cat /var/log/mysqld.log

在这里插入图片描述
root@localhost: 后面就是初始化的密码

5. 启动MySQL,查看状态

#加不加 .service  后缀都可以 
启动:systemctl start mysqld.service 
关闭:systemctl stop mysqld.service 
重启:systemctl restart mysqld.service
查看状态:systemctl status mysqld.service

mysqld 这个可执行文件就代表着 MySQL 服务器程序,运行这个可执行文件就可以直接启动一个
服务器进程。

首次安装,Mysql服务是没有启动的

在这里插入图片描述
启动

在这里插入图片描述
我们可以查看Mysql服务的状态看是否启动
在这里插入图片描述
或者通过进程查看

ps -ef | grep -i mysql

在这里插入图片描述

6. 查看MySQL服务是否自启动

这个时候Mysql服务不是自启动的,我们关闭我们的服务器或者虚拟机就会需要重启 Mysql服务。

通过命令查看是否自启动

systemctl list-unit-files|grep mysqld.service

在这里插入图片描述
默认是enabled

  • 如不是enabled可以运行如下命令设置自启动

    systemctl enable mysqld.service
    
  • 同理,如果希望不进行自启动,运行如下命令设置

    systemctl disable mysqld.service
    

三、MySQL登录

3.1 首次登录

通过mysql -hlocalhost -P3306 -uroot -p进行登录,在Enter password:录入初始化密码(就是上面那个乱七八糟的密码)

这里注意一个小细节,就是在 Linux上输入密码是不会显示的,所以只要复制好了后,直接粘贴敲回车就好了
在这里插入图片描述

3.2 修改密码

  • 因为初始化密码默认是过期的,所以查看数据库会报错
    在这里插入图片描述

  • 修改密码

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
    

    在这里插入图片描述
    经过上面的操作之后就可以随意操作了
    在这里插入图片描述

四、SQLyog远程连接

我们新建连接,输入服务器 ip 和 端口和数据库密码,发现连接失败
在这里插入图片描述

1、首先设置我们服务器的安全组打开
在这里插入图片描述
2、然后在我们的服务器里面将防火墙的 3306 端口打开,命令如下

# 查看firewall服务状态
systemctl status firewalld

# 开启、重启、关闭、firewalld.service服务
# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop

# 查看防火墙规则
firewall-cmd --list-all    # 查看全部信息
firewall-cmd --list-ports  # 只看端口信息

# 开启端口
开端口命令:firewall-cmd --zone=public --add-port=3306/tcp --permanent
重启防火墙:systemctl restart firewalld.service

命令含义:
--zone #作用域
--add-port=80/tcp  #添加端口,格式为:端口/通讯协议
--permanent   #永久生效,没有此参数重启后失效

#常用的firewall命令常用命令介绍
1 firewall-cmd --state                           ##查看防火墙状态,是否是running
 2 firewall-cmd --reload                          ##重新载入配置,比如添加规则之后,需要执行此命令
 3 firewall-cmd --get-zones                       ##列出支持的zone
 4 firewall-cmd --get-services                    ##列出支持的服务,在列表中的服务是放行的
 5 firewall-cmd --query-service ftp               ##查看ftp服务是否支持,返回yes或者no
 6 firewall-cmd --add-service=ftp                 ##临时开放ftp服务
 7 firewall-cmd --add-service=ftp --permanent     ##永久开放ftp服务
 8 firewall-cmd --remove-service=ftp --permanent  ##永久移除ftp服务
 9 firewall-cmd --add-port=80/tcp --permanent     ##永久添加80端口 
10 firewall-cmd --remove-port=80/tcp --permanent  ##永久移除80端口
11 firewall-cmd --list-ports                      ##查看已经开放的端口
12 iptables -L -n                                 ##查看规则,这个

在这里插入图片描述
在这里插入图片描述
3、Linux下修改配置

在Linux系统MySQL下测试:

use mysql; 

select Host,User from user;

在这里插入图片描述

可以看到root用户的当前主机配置信息为localhost,意思就是 root 用户默认是只能在本机连接的,我们需要修改

我们需要修改Host为通配符%

Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。

这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。 user=root Host=localhost,表示只能通过本机客户端去访问。而 %是个通配符 ,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果 Host=% ,表示所有IP都有连接权限。

注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产环境的IP进行设置。

update user set host = '%' where user ='root';

Host设置了“%”后便可以允许远程访问
在这里插入图片描述

注意执行上面命令后要进行刷新,使配置生效

flush privileges;

这个时候已经可以连接成功了

在这里插入图片描述

拓展

如果是 MySQL8 版本,连接时可能还会出现如下问题:

在这里插入图片描述
配置新连接报错:错误号码 2058,分析是 mysql 密码加密方法变了。
解决方法:Linux下 mysql -u root -p 登录你的 mysql 数据库,然后 执行这条SQL:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';

然后在重新配置SQLyog的连接,则可连接成功了,OK。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐