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链接一下数据库:(微微一笑,终于可以了)
【文末】其实这些对于经历过一次的人来说呢,都不算啥,但是呢,针对初次安装来说,真的很耗时耗力,没有经验之谈,都是一些命令操作,做个记录,以后自己翻起来看的时候,可以很迅速的进行安装,不再像现在这样找来找去,找的头大。