阿里云 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<RfdIjtx
其中root@localhost:
后面跟着的就是root的初始密码了。例如上面的示例中,我的初始密码为:-6<RfdIjtx
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。那么可以通过下面的命令进行查找。
- 首先通过
which mysqld
找到安装目录。 - 然后通过该路径,执行
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 常见指令
- 创建数据库:
create database 数据库名;
- 查询数据库:
show databases;
- 切换到指定数据库:
use 数据库名;
- 显示数据库表:
show tables;
- 数据库备份:
mysqldump -uroot -p test >test.sql
数据库导入两种方式:
- 在linux环境中输入:
mysql -uroot -p -Dtest<test.sql
- 切换进入Mysql环境下,并选择要导入的数据库,执行:
source /root/test.sql;
sql指令例如增删改查就不附上了。
评论区