侧边栏壁纸
  • 累计撰写 372 篇文章
  • 累计创建 60 个标签
  • 累计收到 109 条评论

目 录CONTENT

文章目录

阿里云ECS服务器,手动安装MySQL 5.7 最新版

Z同学
2022-10-20 / 0 评论 / 2 点赞 / 68 阅读 / 4,098 字
温馨提示:
本文最后更新于 2022-11-25,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

阿里云 ECS服务器,手动安装MySQL 5.7 最新版

1. 介绍

现在大家都比较习惯通过宝塔进行安装各种工具,而宝塔必须是在系统初始化的时候。任何软件都未进行安装时才能安装宝塔软件。

而很多时候,已经配置完毕了各种环境了。不再支持宝塔安装了。这个时候如果要配置各种安装工具。就需要了解通过命令安装的方式了。

如果从来没有通过命令安装过各种软件。又想学习和了解安装过程。那么不建议从宝塔入手。

我们自己一点一点安装,能够了解更多的配置信息。了解整个流程之后,我们再通过宝塔等工具提高我们的效率才是王道。

下面,介绍如何安装MySql 5.7版本。 操作非常简单。

操作系统为:Linux Centos 8.0 版本

2. 安装MySQL

下面将安装步骤,进行一个拆解。以及最后的root基本配置。

下面的步骤是一步接着一步进行的操作。如果对某一步已经了解。那么可以进行跳过。

2.1 更新yum源

要想安装mysql。需要先告知yum从哪里获取mysql安装包地址和信息,所以我们要先更新yum源信息。

将最新的mysql的noarch.rpm 告诉给yum。然后安装的使用,yum就从该rpm中进行下载安装包进行安装操作了。

实例: 操作指令为: rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

[root@iZufZ ~]# rpm -Uvh  http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
Retrieving http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
warning: /var/tmp/rpm-tmp.jr9H8I: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
	package mysql57-community-release-el7-9.noarch is already installed

当输出为 isalready installed 就代表配置完毕了。可以执行下一步操作了。

可以参考官网介绍:Installing MySQL on Linux Using the MySQL Yum Repository

如果想安装Mysql 8.0 可以将yum源地址进行简单修改。可以参考MySQL官网地址项:MySQL Yum Repository

2.2 安装mysql

配置完毕yum之后就可以直接进行安装操作了,指令为: yum -y install mysql-community-server --nogpgcheck

–nogpgcheck 这个配置项是用来跳过gpg检查的。就是验证mysql下载文件的公钥的。如果你是按照Mysql官方配置给yum配置过RPM-GPG-Key那么可以不用加这个后缀。如果没有,那么建议添加该后缀。方便我们进行下载安装。

示例效果如下:

[root@iZufZ ~]# yum -y install mysql-community-server --nogpgcheck
    
Last metadata expiration check: 0:03:42 ago on Thu 16 Oct 2022 12:37:15 AM CST.
Dependencies resolved.
=======================================================================================================================
 Package                            Architecture       Version                     Repository                     Size
=======================================================================================================================
Installing:
 mysql-community-server             x86_64             5.7.40-1.el7                mysql57-community             178 M
Installing dependencies:
 mysql-community-client             x86_64             5.7.40-1.el7                mysql57-community              28 M
 mysql-community-common             x86_64             5.7.40-1.el7                mysql57-community             311 k
 mysql-community-libs               x86_64             5.7.40-1.el7                mysql57-community             2.6 M

Transaction Summary
=======================================================================================================================
Install  4 Packages

Total download size: 209 M
Installed size: 895 M
Downloading Packages:
(1/4): mysql-community-common-5.7.40-1.el7.x86_64.rpm                                  277 kB/s | 311 kB     00:01    
(2/4): mysql-community-libs-5.7.40-1.el7.x86_64.rpm                                    1.3 MB/s | 2.6 MB     00:01    
(3/4): mysql-community-client-5.7.40-1.el7.x86_64.rpm                                  5.7 MB/s |  28 MB     00:04    
(4/4): mysql-community-server-5.7.40-1.el7.x86_64.rpm                                   10 MB/s | 178 MB     00:17    
-----------------------------------------------------------------------------------------------------------------------
Total                                                                                   11 MB/s | 209 MB     00:18     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                               1/1 
  Installing       : mysql-community-common-5.7.40-1.el7.x86_64                                                    1/4 
  Installing       : mysql-community-libs-5.7.40-1.el7.x86_64                                                      2/4 
  Running scriptlet: mysql-community-libs-5.7.40-1.el7.x86_64                                                      2/4 
  Installing       : mysql-community-client-5.7.40-1.el7.x86_64                                                    3/4 
  Running scriptlet: mysql-community-server-5.7.40-1.el7.x86_64                                                    4/4 
  Installing       : mysql-community-server-5.7.40-1.el7.x86_64                                                    4/4 
  Running scriptlet: mysql-community-server-5.7.40-1.el7.x86_64                                                    4/4 
  Verifying        : mysql-community-client-5.7.40-1.el7.x86_64                                                    1/4 
  Verifying        : mysql-community-common-5.7.40-1.el7.x86_64                                                    2/4 
  Verifying        : mysql-community-libs-5.7.40-1.el7.x86_64                                                      3/4 
  Verifying        : mysql-community-server-5.7.40-1.el7.x86_64                                                    4/4 

Installed:
  mysql-community-client-5.7.40-1.el7.x86_64                 mysql-community-common-5.7.40-1.el7.x86_64                
  mysql-community-libs-5.7.40-1.el7.x86_64                   mysql-community-server-5.7.40-1.el7.x86_64                

Complete!

当输出Complete!的时候,就代表我们安装成功了。

2.2.1 安装错误 Error: Unable to find a match: mysql-community-server

我们有时候安装命令执行后,出现Error: Unable to find a match: mysql-community-server 错误提示。

示例效果如下:

[root@iZufZ ~]# yum -y install mysql-community-server --nogpgcheck
Last metadata expiration check: 0:01:29 ago on Thu 16 Oct 2022 12:38:15 AM CST.
All matches were filtered out by modular filtering for argument: mysql-community-server
Error: Unable to find a match: mysql-community-server

那么。我们首先判断一下yum中是否有mysql-community-server :

通过指令:yum repolist enabled | grep "mysql.*.community.*"检测。如果出现 MySQL 5.7 Community Server

就代表yum源中是有安装包的。示例如下:

[root@iZuf63tu3fn1swasqa62h8Z nginx]# yum repolist enabled | grep "mysql.*.community.*"
mysql-connectors-community    MySQL Connectors Community
mysql-tools-community         MySQL Tools Community
mysql57-community             MySQL 5.7 Community Server

如果没有,那么我们需要执行更新yum源之后,再进行安装了。

而如果和上面的示例一样。那么我们可以尝试删除yum中的mysql

[root@iZufZ ~]# yum module disable mysql
Last metadata expiration check: 0:03:23 ago on Thu 16 Oct 2022 12:38:16 AM CST.
Dependencies resolved.
=======================================================================================================================
 Package                     Architecture               Version                      Repository                   Size
=======================================================================================================================
Disabling modules:
 mysql                                                                                                                

Transaction Summary
=======================================================================================================================

Is this ok [y/N]: y
Complete!

得到反馈Complete之后,再进行安装,就可以正常安装了。

PS: 你需要确保本机没有安装mysql 才能这样操作,如果已经安装过。那么需要进行卸载操作。具体的卸载操作可以参考下面的卸载方法。

2.3 查询MySql 版本

我们安装完毕后,要判断mysql是否安装成功。可以通过mysql -V 指令进行判断。如果返回有版本就代表安装成功了。如果没有就代表安装失败了。

没有安装MySQL的时候:

[root@iZufZ ~]# mysql -V
-bash: mysql: command not found

有安装MySQL的时候:

[root@iZufZ ~]# mysql -V
mysql  Ver 14.14 Distrib 5.7.40, for Linux (x86_64) using  EditLine wrapper

就会正确返回我们系统中安装的mysql的版本信息了。

2.4 配置开机启动

当我们安装完毕后,就要配置MySQL的开机启动指令了。

示例:systemctl enable mysqld 启动MySql 请注意一定要输入mysqld才行。如果输入mysql会出现错误提示:

[root@iZufZ ~]# systemctl enable  mysql
Failed to enable  mysql.service: Unit mysql.service not found.

会提示我们,没有mysql.service 服务。

正确示例为:

[root@iZufZ ~]# systemctl enable  mysqld

2.4.1 systemctl 指令集 查询MySQL当前状态

我们在上面介绍了设置开机启动指令,那么还有相关的停止,重启,取消开机自启动。启动Mysql等。

# 启动MySQL服务
systemctl start mysqld
    
# 停止MySQL服务
systemctl stop mysqld

# 重启MySQL服务
systemctl restart mysqld
    
#查看MySQL服务当前状态
systemctl status mysqld
    
#设置MySQL服务开机自启动
systemctl enable mysqld

#停止MySQL服务开机自启动
systemctl disable mysqld

我们如果不知道自己的MySql服务是否有启动,可以通过上面的查询MySQL服务状态进行查询:

服务状态Active:inactive(dead) 服务处于停止状态。

[root@iZufZ ~]# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since Thu 2022-10-20 13:00:41 CST; 54s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
 Main PID: 2131730 (code=exited, status=0/SUCCESS)

如果是启动模式显示为:

服务状态Active: active (running) 服务处于活动状态。正在运行。

[root@iZufZ ~]# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2022-10-20 14:41:58 CST; 28s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 2132496 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exi>
  Process: 2132475 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 2132499 (mysqld)
    Tasks: 27 (limit: 11498)
   Memory: 232.3M
   CGroup: /system.slice/mysqld.service
           └─2132499 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

2.5 MySQL基本配置

当我们配置完毕开机启动,然后就可以执行开启服务了:systemctl start mysqld。只有开启了MySQL,我们才能进行下面的配置。

配置开机自启动状态,并不会启动MySQL。只有系统重启的时候才会启动MySQL。我们当前系统没有进行重启的话,那么MySQL也就没有启动了。所以需要我们主动执行启动命令:systemctl start mysqld

2.5.1 获取初始root密码

我们要执行配置之前。获取mysql的初始root密码:grep 'temporary password' /var/log/mysqld.log。示例如下:

[root@iZufZ ~]# grep 'temporary password' /var/log/mysqld.log
2022-10-16T03:46:37.671126Z 1 [Note] A temporary password is generated for root@localhost: -6&ltRfdIjtx

其中root@localhost:后面跟着的就是root的初始密码了。例如上面的示例中,我的初始密码为:-6&ltRfdIjtx

2.5.2 修改root密码

当我们得到初始密码后,通过 mysql -uroot -p 命令进行首次登陆。

[root@iZufZ ~]# mysql -uroot -p
Enter password: 

在Enter password: 后面输入我们的初始密码。该密码不会显示哦。我们盲输就可以了。输入完毕后回车。成功就会出现下面的示例结果了:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.40

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>

然后,我们可以进行修改初始密码操作了。示例:

mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY '在这里输入我们的密码';

密码要求需要长度达到8位以上,并且字母+数字+符合。如果密码符合要求就会打印:

Query OK, 0 rows affected (0.00 sec)

如果你觉得mysql的密码验证太繁琐了,可以降低密码验证安全策略。(改为最低安全策略,只验证密码长度8位以上)

mysql>set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)

我们的指令输入成功后,如果正确就会输出 Query Ok开头的打印内容

在MySql输入模式下,命令输入完毕后,需要在最后添加;然后在按回车键。否则命令不执行,一直处于输入模式。

2.5.3 配置root账户拥有远程管理权限

我们在上面配置完毕后,如果想远程通过各种数据库管理工具进行操作。那么就需要一个拥有远程访问权限的账户。

我这里通过配置root账户的远程管理权限进行。

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '我们root账户的密码';

2.5.4 退出MySql命令模式

当我们一切配置完毕后,如果想回到默认Linux系统的输入模式,可以通过exit命令退出。示例:

mysql> exit
Bye
[root@iZufZ ~]#

exit 命令后面不用加;输完直接按回车键(Enter)就可以了。

到这里,基本的环境和配置就搭建完毕了。

2.5.5 查询MySql 的配置文件

在Windows 下MySQL的配置文件叫做my.ini 。而在Linux下,该配置文件叫做my.conf。通常存储在 /etc/目录下。

我们可以直接通过:vim /etc/my.conf 打开该配置文件并进行修改操作。

[root@iZufZ ~]# vim /etc/my.cnf

而我们如果在该目录下找不到。但是系统已经正确配置安装了mysql。那么可以通过下面的命令进行查找。

  1. 首先通过which mysqld 找到安装目录。
  2. 然后通过该路径,执行Default options 默认配置查找。

具体示例如下:

[root@iZufZ ~]# which mysqld
/usr/sbin/mysqld
[root@iZufZ ~]# /usr/sbin/mysqld --verbose --help | grep -A 1 'Default options'
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf 

注意: 第二步命令输入时,-A 后面跟着的是数字1,而不是字母l。(有些字符模式下 这两个字符容易弄混)

之后的更多的发挥,就不介绍了。有关mysql的各种配置项可就太多了。

3. 卸载MySQL

我们的安装是通过rpm进行安装的,所以可以通过rpm进行卸载。

如果你是源文件安装的,直接删除该源文件就可以了。之后再尝试清理各种mysql的配置文件就可以了(不清理也可以,只是混杂太多。会容易弄混乱)。

首先:进行关闭MySQL服务: systemctl stop mysqld 和上面的开启MySql服务是一样的输入方式。只是替换了中间的start改为了stop而已。

[root@iZufZ ~]# systemctl stop mysqld

然后通过 rpm -qa | grep -i mysql 查询我们安装的服务。

[root@iZufZ ~]# rpm -qa | grep -i mysql
mysql57-community-release-el7-9.noarch
mysql-community-client-5.7.40-1.el7.x86_64
mysql-community-server-5.7.40-1.el7.x86_64
mysql-community-common-5.7.40-1.el7.x86_64
mysql-community-libs-5.7.40-1.el7.x86_64

然后我们可以通过命令:rpm -e mysql* 一次性卸载所有的安装服务。 (*号代表匹配多个字符。我们也可以写具体的卸载包名称进行卸载)

[root@iZufZ ~]# rpm -e mysql* 

如果有部分包因为依赖关系无法进行卸载error: Failed dependencies 。那么可以添加–nodeps 不验证软件包的依赖关系。

[root@iZufZ ~]# rpm -e --nodeps mysql*  

卸载完毕之后,我们可以通过find 查找系统中的mysql的配置目录。因为有些配置文件,并不会跟着卸载一起删除。我们就需要主动查找并进行删除操作了。示例:

[root@iZufZ ~]# find / -name mysql
/etc/logrotate.d/mysql
/var/lib/selinux/targeted/active/modules/100/mysql
/var/lib/selinux/targeted/tmp/modules/100/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/bin/mysql
/usr/lib64/mysql
/usr/share/bash-completion/completions/mysql
/usr/share/selinux/targeted/default/active/modules/100/mysql
/usr/share/mysql
[root@iZufZ ~]#

然后,我们根据自己的需求,通过 rm -rf 文件路径+文件名称 执行删除文件夹和文件的方式进行删除就可以了。

注意了:

1.rm -rf 删除后,文件就彻底被删除了。无法找回哦。
2.通过find 查找的mysql命名的不一定都是MySQL的配置文件,我们本地如果创建了mysql进行存储关于mysql的学习资料,也会被查找出来哦。删除之前必须慎重,慎重,慎重。

4. 后记

看在连日志输出都贴了出来的份上,如果觉得合适。请给我点个赞。谢谢!

最后,附属一些最最基础的mysql的操作指令。如果大家要通过命令进行操作mysql数据库。那么下面这个命令是一定要记住并经常使用的。

mysql 常见指令

  1. 创建数据库: create database 数据库名;
  2. 查询数据库: show databases;
  3. 切换到指定数据库: use 数据库名;
  4. 显示数据库表: show tables;
  5. 数据库备份:mysqldump -uroot -p test >test.sql

数据库导入两种方式:

  1. 在linux环境中输入:mysql -uroot -p -Dtest<test.sql
  2. 切换进入Mysql环境下,并选择要导入的数据库,执行: source /root/test.sql;

sql指令例如增删改查就不附上了。

2

评论区