「作者简介」:冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础著作 《网络安全自学教程》,适合基础薄弱的同学系统化的学习网络安全,用最短的时间掌握最核心的技术。
这一章节我们使用CentOS7安装MySQL8.4社区版。Windows可以参考我的另一篇文章: Windows下载安装MySQL8.28社区版
MySQL
1、下载
1)MySQL官网 https://dev.mysql.com/downloads/mysql/
下载安装包。
系统选择 Red Hat Enterprise Linux 企业版Linux,版本选Linux 7 x86 64。
uname -a
可以查看你的系统是x86的还是ARM的,一般都是x86。
下载第一个 RPM Bundle,这个是完整的包,包含了下面所有的rpm安装包。
2)不登陆注册,直接下载。
3)下载完传到Linux上,我这里用的MobaXterm。
2、解压
1)解压 tar -xvf mysql-8.4.0-1.el7.x86_64.rpm-bundle.tar
解压完是12个rpm安装包,跟下载界面里剩下的12个包是一 一对应的。其实这里我们只用6个包就行了,为了方便,就直接下个全量包传过来了。
3、卸载mariadb
CentOS内部集成了mariadb,MariaDB是MySQL的一个分支,诞生的目的是解决甲骨文公司收购MySQL后可能出现的闭源风险。这就相当于系统已经装过一个MySQL了,你再装肯定会有冲突,所以要先卸载。
shell
rpm -e --nodeps mariadb-libs
4、安装perl
Perl是一种脚本语言,MySQL连接数据库、查询和处理数据都是使用Perl实现的,所以安装MySQL必须依赖Perl。
perl -v
如果提示没装,就 yum install perl
安装perl,安装后 perl -v
输出版本,表示安装成功。
5、安装net-tools
net-tools 是一个网络命令工具箱,里面有 arp、dnsdomainname、domainname、hostname、ifconfig、nameif、netstat、nisdomainname、plipconfig、rarp、route、slattach、ypdomainname 命令。2001年停止维护,新版本Linux默认不带,而是用 iproute2 代替。
就这么几个命令,咱也不知道MySQL用上哪个了,反正它依赖,咱就给他装上。
netstat --version
如果提示没装,就 yum install net-tools
安装,netstat --version
输出版本,就表示安装成功。
6、安装MySQL
安装包之间有依赖关系,按照以下顺序安装 rpm -ivh mysql-community-xx
,否则会报错。
- mysql-community-common:MySQL客户端和服务器使用的配置文件、默认选项文件和语言文件等,是安装MySQL客户端和服务器所需的依赖包。
- mysql-community-client-plugins:客户端插件。
- mysql-community-libs:MySQL客户端的程序库,用来加密和压缩数据、处理MySQL协议和语句,是安装MySQL客户端所需的依赖包。
- mysql-community-client:MySQL客户端,用来连接MySQL服务器执行命令。
- mysql-community-icu:是安装MySQL服务器所需要的依赖包。
- mysql-community-server:MySQL服务端,用来存储数据、接受客户端请求并处理数据,比如创建数据库和表、增删改查等操作。
Warning是警告不用管,没有Error就算成功。
7、初始化
安装完成后,mysqld --initialize --console
初始化MySQL 。
初始化的过程中,会创建系统表、用户和数据目录,生成临时密码。
cat /etc/passwd | grep mysql
可以看到创建了一个mysql用户。
ll /var/lib/ | grep mysql
可以看到创建了MySQL的数据目录。
cat /var/log/mysqld.log
可以看到生成的临时密码。
8、修改权限
ll /var/lib/mysql
可以看到,MySQL目录下的文件权限都是root。按照软件安全设计中最小特权原则,生产环境需要以mysql用户运行MySQL服务,这会因为没有权限而报错。
chown -R mysql:mysql /var/lib/mysql/
修改mysql目录的属主和属组。
9、启动和关闭MySQL
MySQL的服务名是mysqld,根据服务名启动MySQL服务,systemctl start mysqld
systemctl status mysqld
查看服务状态,running表示启动,dead表示关闭。
或者 ps -ef | grep mysqld
查看进程有没有在执行。
systemctl stop mysqld
停止服务。
systemctl restart mysqld
重启服务。服务运行时会重启服务;服务员停止时会直接启动服务。
10、登录MySQL
cat /var/log/mysqld.log | grep localhost
查看初始化MySQL时生成的临时密码
mysql -u root -p密码
登录MySQL,注意-p和密码之间不要有空格,否则会报错 Unknown database。
11、修改密码
登录进去先修改密码 alter user 'root'@'localhost' identified by '1234567';
quit
退出MySQL后,用新密码登录。
接下来就可以使用了,MySQL的命令和使用方式可以参考我的另一篇文章 MySQL数据库入门教程