工作中,公司需要用到MySQL数据库,但是正式环境中,服务器是没有网络的,我们选择rpm离线方式进行数据库的安装。
软件安装卸载可以参考Linux软件的安装这篇文章。里面详细介绍了软件安装的几种方法。
1、下载
1.1 下载地址
https://dev.mysql.com/downloads/mysql/
1.2 点击Archives,选择对应的产品版本、操作系统和LinuxOS版本,点击Down进行下载
1.3 上传到服务器,进行解压
正式坏境中服务器可以使用内网连接,我们一般上传下载文件使用的lrzsz软件,但是很多时候lrzsz软件系统中未安装,需要我们自己手动安装。
#安装lrzsz软件
[root@test1 ~]# yum install lrzs -y
[root@test1 ~]# cd /opt/
#上传
[root@test1 opt]# rz
[root@test1 opt]# ll
总用量 545244
-rw-r--r--. 1 root root 556165120 3月 11 09:50 mysql-5.7.39-1.el7.x86_64.rpm-bundle.tar
drwxr-xr-x. 2 root root 6 10月 31 2018 rh
-rw-r--r--. 1 root root 2160648 3月 14 2022 tengine-2.2.0.tar.gz
#解压
[root@test1 opt]# tar -xvf mysql-5.7.39-1.el7.x86_64.rpm-bundle.tar
2、安装
2.1 卸载CentOS自带的Mariadb
安装MySQL的时候我们需要卸载CentOS系统自带mariadb
[root@test1 opt]# rpm -qa | grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
[root@test1 opt]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
--nodeps 参数是忽略依赖关系
2.2 安装mysql
我们按照以下顺序进行MySQL 的安装
mysql-community-common-5.7.39-1.el7.x86_64.rpm
mysql-community-libs-5.7.39-1.el7.x86_64.rpm
mysql-community-client-5.7.39-1.el7.x86_64.rpm
mysql-community-server-5.7.39-1.el7.x86_64.rpm
[root@test1 opt]# rpm -ivh mysql-community-common-5.7.39-1.el7.x86_64.rpm
[root@test1 opt]# rpm -ivh mysql-community-libs-5.7.39-1.el7.x86_64.rpm
[root@test1 opt]# rpm -ivh mysql-community-client-5.7.39-1.el7.x86_64.rpm
[root@test1 opt]# rpm -ivh mysql-community-server-5.7.39-1.el7.x86_64.rpm
2.3 安装过程的报错解决方案
在安装过程中偶尔会出现报错,大多数是因为RPM安装软件包的时候不会自动处理依赖关系,导致缺少依赖,以下是两个经常遇见的错误,仅供参考
缺少 net-tools
[root@test1 opt]# yum install net-tools -y
缺少 prel
[root@test1 opt]# yum install perl -y
3、mysql常用命令
实际坏境中,需要掌握以下命令来管理MySQL的启停
systemctl start mysqld 启动
systemctl stop mysqld 停止
systemctl status mysqld 状态查询
systemctl restart mysqld 重启
systemctl enable mysqld 开机自动启动
systemctl disable mysqld 关闭开机自动启动
4、Mysql配置
安装完成后,启动数据库,需要进行一些简单的配置,方便我们正常使用数据库
#启动数据库
[root@test1 opt]# systemctl start mysqld
#查询数据库状态
[root@test1 opt]# systemctl status mysqld
#开机自动mysql
[root@test1 opt]# systemctl enable mysqld
4.1 修改初始化密码
安装MySQL的时候,会把初始密码报错在日志里面,日志的位置在/var/log目录下的mysqld.log文件里面,使用如下命令查询初始化密码
[root@test1 opt]# cat /var/log/mysqld.log | grep 'password is generated'
查询到密码后,我们使用mysql -uroot -p命令登陆数据库,输入查询到初始化密码登陆数据库
[root@test1 opt]# mysql -uroot -p
Enter password:
登陆数据库成功后,使用如下命令修改root账户密码
mysql> alter user 'root'@'localhost' identified by 'Cjlr2022!';
Query OK, 0 rows affected (0.00 sec)
4.2 授予root所有权限,并且可以远程登陆
账号密码修改完成后,我们需要远程登陆数据库,这时候我们需要给root账号授权
--授权所有权限,并且可以远程登陆
mysql> grant all privileges on *.* to 'root'@'%' identified by 'Cjlr2022!' with grant option;
Query OK, 0 rows affected, 1 warning (0.00 sec)
--刷新权限
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
4.3 配置防火墙
正式坏境中,防火墙默认是关闭的,而我们现在是测试坏境,需要放行mysql端口,MySQL默认端口是3306
#放行3306端口
[root@test1 opt]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
#重新加载防火墙
[root@test1 opt]# firewall-cmd --reload
success
#查询放行的端口
[root@test1 opt]# firewall-cmd --list-port
3306/tcp
正式环境中防火墙和SELIUNX都是关闭状态,使用以下命令关闭防火墙和SELINUX
#关闭防火墙
[root@test1 data]# systemctl stop firewalld.service
#开机不启动防火墙
[root@test1 data]# systemctl disable firewalld.service
#查询防火墙状态
[root@test1 data]# systemctl status firewalld.service
#永久关闭SELINUX
[root@test1 data]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
#临时关闭SELINUX
[root@test1 data]# setenforce 0
#查看SELINUX状态 服务器重启后生效
[root@test1 data]# getenforce
至此数据库安装完成!!!