Centos8安装mysql8.0

Centos8安装mysql8.0这个耗费了大概一天的时间,这个安装网上说的方式各式各样,然而真正有效的基本没有。本身安装这一系列软件,觉得顺手拈来,实质上,没有调研就没有发言权,这个东西更新换代之后,的确是更好用了,但是准确的安装手册, 真是难得啊。下面是安装流程:

首先我们需要去官网上下载安装需要的基本文件:

 

针对centos8,我们选择

 

 

这个文件一定要选对,否则安装中也会出现很多命令不匹配的问题,因为centos8针对比较老版的命令都已经舍弃了,换了一个新的命令名称。开始下载:

 

我们需要下载的就是这几个文件,一定要看准,不能下载错,少一个文件都不行。

现在完毕之后上传到我们的服务器上,准备下一步操作。

先查看一下本地服务器上有没有已经安装MySQL,如果有,当然是完全卸载啦。卸载这里就不多说了,可以直接参考:

https://blog.csdn.net/typa01_kk/article/details/49057073

部分删除流程可以看如下截图:

 

 

删除完毕之后,我们就要进行安装操作了,新建目录mysql(因为Linux下大小写敏感,统一路径规则,全部为小写)。

首先,修改文件属性,chmod 777 文件名称(避免安装时读取文件错误)。

 

上图所示:

第一步,安装客户端(mysql-client)

rpm -ivh rpm包

安装mysql-community-common-8.0.20
安装mysql-community-libs-8.0.20
安装mysql-community-client-8.0.20(前两个是其依赖,一定安装顺序安装)

键入如下命令:
rpm -ivh mysql-community-common-8.0.20-1.el8.x86_64.rpm

rpm -ivh mysql-community-libs-8.0.20-1.el8.x86_64.rpm

rpm -ivh mysql-community-client-8.0.20-1.el8.x86_64.rpm

第二步,安装服务端(mysql-server)

键入命令:rpm -ivh mysql-community-server-8.0.20-1.el8.x86_64.rpm

第三步,查看是否安装成功

ps -ef | grep mysql

cat /etc/group | grep mysql

cat /etc/password | grep mysql

mysqladmin --version

任选选其一即可

mysqladmin --version

第四步,初始化mysql

mysqld --initialize //创建数据文件目录和mysql系统数据库 产生随机root密码

第五步,/var/lib/mysql目录权限授权

chown -R mysql:mysql /var/lib/mysql/

第六步,启动mysql服务

systemctl start mysqld //启动

ps -ef | grep mysql //查看mysql服务

第七步,查看初始化随机生成的root密码

cat /var/log/mysqld.log | grep password

 

这里呢,我们会看到两个随机生成的root密码,有一个是我前几天安装没有成功的mysql留下的随机密码,根据时间我们选择当天最新的随机密码。(由于mysql卸载完毕之后,可能有其他名字的日志文件,我没有找到,没有删除,所以系统里边保留了上一次安装留下的随机密码)

第八步,安全设置

这一步呢,算是个重点项,因为修改密码等很多配置都在这里,不像以前了,我们有很多配置都是需要到my.cnf进行配置的。

键入命令:mysql_secure_installation

下面就是我们的配置,配置的解释说明我放在图下,大家可以了解一下。(按照红色方框的顺序依次解释)

 

我们首先是要键入随机密码才能进入下一步界面的,进入之后我们便可以设置新的密码了。设置完新的密码,接下来就是红色方框的配置:

1.是否设置验证密码组件,这个我没有查看到底是什么,因为没用到,我直接选择No;

2.是否更改root密码,输入y会重置新的密码,我们已经更改了密码,选择No;

3.是否删除匿名用户,建议是删除,选择y;

4.是否禁止root远程登录,建议禁止,选择y;(等等,为什么禁止呢,我们不是要远程登录呢么?是的,后边会介绍Navicat登录的配置,暂时先为了安全性考虑设置为y)

5.是否删除test数据库,选择y;

6.是否重新加载权限表,选择y。

至此安全性配置结束,我们可以进行数据库的登录,键入命令:mysql -uroot -p

 

这里多说一点,针对mysql8.0更改密码,和往常版本不同,mysql8.0更改密码操作如下:

先把root的旧密码置空

use mysql;

update user set authentication_string='' where user='root';

备注:Mysql5.7+ password字段 已改成 authentication_string字段

重置成新密码alter user 'root'@'localhost' identified by 'newpassword';

备注:Mysql8.0修改密码方式已有变化(此处是个坑,需要注意)

Mysql8.0之前:update user set password=password('root') where user='数据库密码';

下面介绍如何设置root用户的localhost为%(用于连接navicat

 

其中蓝色方框为密码字段。

其中下边的配置改变加密方式(8之后的版本需要设置),这里把命令模拟在下边,方便大家安装的时候可以直接复制修改:

use mysql;

ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; #更改加密方式

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';#更新用户密码

FLUSH PRIVILEGES;#刷新权限

补充:(下面这些补充也很重要,遇到的时候可以看下)

如何停止、重启和查看mysql服务(这里和Centos8之前的版本命令完全不同)

systemctl stop mysqld //停止服务

systemctl restart mysqld //重启服务

systemctl status mysqld //查看服务

mysql的相关安装目录文件

/usr/share/mysql //配置文件目录

/var/lib/mysql //数据库文件存放目录

/etc/my.cnf //mysql的启动配置文件

mysqld //是后台守护进程,即mysql daemon

mysql //是客户端命令行

需关闭防火墙或者开放3306端口

service iptables stop #暂时关闭

chkconfig iptables off #设置成开启不自启(这个命令没有测试,大家可以自己试一下,这次安装,centos8应该是不支持chkconfig 命令了

/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT #开启3306端口

/etc/rc.d/init.d/iptables save #保存配置

/etc/rc.d/init.d/iptables restart #重启服务

最后呢,用Navicat链接一下数据库:(微微一笑,终于可以了)

 

【文末】其实这些对于经历过一次的人来说呢,都不算啥,但是呢,针对初次安装来说,真的很耗时耗力,没有经验之谈,都是一些命令操作,做个记录,以后自己翻起来看的时候,可以很迅速的进行安装,不再像现在这样找来找去,找的头大。