这两种安装方式有什么区别呢?尽管我们在Linux下常用tar来压缩/解压缩文件,但MYSQL的tar格式的文件其实只是mysql的文件包,并不能直接安装,需要操作configure、make、install等命令才能完成安装,是一种比较繁琐的安装方式。而rpm格式的文件是真正的安装包,相当于windows的exe文件,可以直接安装。
在安装前要先确定系统是否已经安装了其他版本的MySQL,如已安装其他版本的MySQL,需先删除后再安装新版本。经本文亲测,采用如下方式删除老版本的MySQL或MySQL残留文件作为方便。
yum remove mysql mysql-server mysql-libs mysql-server;
find / -name mysql
当前,MySQL的最新版本为:5.7.31,从官网下载MySQL的rpm安装包
在重新进行安装之前,为确保万无一失,我们还是再确认一下系统中是否有MySQL极其相关的RPM安装包。如果有,则先删除。
1、先查看是否安装mysql,如果有就删除它:yum remove mysql-community-server-5.7.31-1.el7.x86_64
rpm -qa | grep -i mysql
执行完上述命令后,返回空数据,说明没有安装相关包
2、再查看是否安装了mariadb,centos7系统,则会自带mariadb,这个是mysql的一个分支,需要移除掉,可以执行下面命令查询是否
rpm -qa | grep -i mariadb
如果有mariadb就删除它
yum remove mariadb-libs-5.7.31-1.el7.x86_64
3、将mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar安装文件,拷贝到服务器,解压文件
tar xvf mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar
这时,我们再到mysql的目录下就可以看到解压出来的rpm包:
4、由于mysql的server端需要perl语言的支持,因此我们还需要在系统中安装perl支持:
yum install perl -y
由于我们上面解压出来的几个rpm包有依赖关系,所以我们需要按照顺序执行安装:
rpm -ivh mysql-community-common-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.31-1.el7.x86_64.rpm
如果使用上面的命令安装,出现如下的错误
解决方案:在他的后面加上 --force --nodeps
rpm -ivh mysql-community-server-5.7.31-1.el7.x86_64.rpm --force --nodeps
执行上面的命令,一切正常,如图
这几个包的安装完成之后,我们的数据库也就安装完成了,有几个需要注意的地方:
安装完成了,我们需要先把mysql运行起来,这样我们才能进行接下来的配置。
先看一下 /var/lib/mysql/ 目录下是否有东西,如果发现这个目录下是没有东西的,或者是连mysql这个目录都没有,也就是说数据库还没有初始化。
mysql的启动
systemctl start mysqld.service
这样mysqld这个服务就添加到系统中了,我们可以用service进行启动了,启动,停止,重启的命令如下:
启动:
使用 service 启动:
service mysqld start
使用 mysqld 脚本启动:
/etc/inint.d/mysqld start
使用 safe_mysqld 启动:
safe_mysqld&
状态:
systemctl status mysqld
停止:
使用 service 启动:
service mysqld stop
使用 mysqld 脚本启动:
/etc/inint.d/mysqld stop
mysqladmin shutdown
重启:
使用 service 启动:
service mysqld restart
使用 mysqld 脚本启动:
/etc/inint.d/mysqld restart
我们在启动了mysql之后,这个时候等待一段时间,数据库需要进行初始化,这个时候我们可以看一下数据库的日志,会发现mysql帮我们初始化了一个root用户:
cat /var/log/mysqld.log
alter user root@localhost identified by '123456';
使用命令修改密码出现问题时,可以查看另一篇文章解决方案:https://blog.csdn.net/longzhoufeng/article/details/107838816
grant all privileges on *.* to 'root' @'%' identified by '123456';
flush privileges;
这里设置完之后,就可以在其他局域网内电脑上用Navicat连接一下看看能不能连接了,如果遇到带有数字的报错(非denind)的话,可以尝试开启防火墙的端口限制:
开启3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
如果上面命令报错,在centos出现 “FirewallD is not running”
是因为没有开启防火墙,解决方案:https://fullstack.blog.csdn.net/article/details/107839916
刷新防火墙
firewall-cmd --reload
chkconfig mysqld on