注:linux系统为vmware虚拟机,和真实工作环境可能有出入,不过正因如此我暴露了NAT转出的IP也没什么大碍
postgresql与mysql目前都是非常受人欢迎的两大数据库,其各有各的优势,初学者先使用简单一张图来说明两者区别
以上内容引用自https://zhuanlan.zhihu.com/p/643268482
顺带由于自己目前的项目组正在使用的就是postgresql,所以和经典老牌数据库mysql一并装来学学
开始前先进入官网查看官方指导 https://www.postgresql.org/download/
首先点击linux后选择Red Hat系(原因具体看下图),总的来说CentOS是企业版RHEL的先行前瞻版本,相对比测试版的Fedora又稳定些,关键是免费于是被很多企业所采用。此处使用yum包管理工具进行下载安装
点击RED HAT框后进入下载选择页,注意这几个看起来像纯Input的框实际上是可点击的
选择好对应的选项,下方就会跳出对应yum脚本
由于一般我们操作linux服务器都是以远程SSH命令进行操作的,本次以xshell工具进行演示
使用第一个命令下载对应的rpm包
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql14-server
此时postgresql已经被安装到系统中了,并且系统中也已经添加了postgres这个用户,但是目前还没有设置密码(而且网上好像没找到其初始密码是什么),用当前的用户是无法访问/var/lib/pgsql这个目录的所以先下一步
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
此处执行的是postgresql的初始化,执行后其数据库中就有了基础表和数据库用户,但此时我们还是不知道其系统内postgres用户密码,所以我们切换到root用户进行重置。
sudo passwd -d postgres
sudo -u postgres passwd
此时输入两次密码即可,之后就可以愉快地用postgres用户访问数据库相关内容了
此时就可以访问/var/lib/pgsql/14/data/pg_hba.conf文件了,需要在这边在控制外部访问的文件中添加内容
host all all 0.0.0.0/0 md5
具体含义如下
另外可以在同目录找到postgresql.conf文件,用于控制对外开放的端口,默认状态为5432
如有需要修改,修改后重启生效
接下来启动postgresql的服务,并设置为开机启动
sudo systemctl enable postgresql-14
sudo systemctl start postgresql-14
此时就可以使用远程GUI工具进行连接了
要注意的是如果使用远程连接的话是需要先用SSH连接搭载postgresql的主机,然后通过连接到的主机进行数据库服务的访问
对应不同的连接过程
首先到官网下载对应的整合包
https://dev.mysql.com/downloads/mysql/
2023年的话,很多人可能会纠结要不要保持最新的版本来安装练习,但是要注意8.2.0此处有Innovation的标识,标定其为创新性版本,换言之就是并非是能保证稳定的版本,具体的变化可以参考下网络资源。
所以我们此处选择8.0.35,8.0这个大版本基本上也就是目前新一代使用的最多的,社区资源也比较丰富的版本了
下一个开始选择系统,有的人仔细一看居然没有CentOS就懵了,实际上CentOS就是RHEL(redhat 企业级linux)的略前瞻版本,初学者可以直接近似认为是换皮就可以了,所以直接选Red Hat Enterprise Linux即可
第三步则是选择对应的linux系统内核版本号,此处可以先在自己的linux系统进行查询
uname -a
el7是传承自RHEL的版本标识EL7,指内核版本为7,所以此处选择7即可,其中选择X86平台的(Intel/AMD的cpu为x86平台),如果是什么树莓派,或者是M系列芯片或者是有可能未来出的骁龙芯片电脑的话就选ARM平台。
列出的表格一眼就可以看出来,最上面的bundle捆绑包就是下面的合集,可能会有人想着和win系统一样只装个server用着就完事了就只下了server,然而linux包有很多是需要不同其他包做依赖的,比如lib相关包就是被其他模块应用的,所以这里选择直接下载bundle包以防万一。
将下载下来的包传到服务器上,用命令解压
tar -xvf mysql-8.0.35-1.el7.x86_64.rpm-bundle.tar
安装前需要注意一个问题,那就是一般目前linux系统会自带一个mariaDB(和mysql有千丝万缕的联系),有可能会影响到mysql的安装,但是有的人反映是安装的时候会覆盖其mariaDB,不过为了以防万一先移除其mariaDB
rpm -qa|grep mariadb
sudo yum remove mariadb-libs.x86_64
接下来就可以真正地进行安装了,先修改路径为解压了一堆包的目录
以如下顺序进行安装,有的debug相关的可以暂时不用安装
rpm -ivh mysql-community-client-plugins-8.0.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-common-8.0.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.35-1.el7.x86_64.rpm
由于各rpm包各有各的前置需要安装的东西,如果第一把就开始乱序安装就会这样,所以一定还是得按顺序安装。
最后安到server基本就ok了
systemctl enablemysqld
systemctl start mysqld
设置开机启动并立刻启动
先获取下mysql刚开始的暂存密码,不然都进不去具体数据库
sudo grep "temporary password" /var/log/mysqld.log
修改其root用户密码(这里的root指的是mysql的用户不是linux的)
alter user root@'localhost' identified by '【你的新密码】';
要注意这个地方要换密码是有个强密码检测的,测试了下应该是至少需要大小写再带特殊字符
systemctl restart mysqld
再次重启即可