侧边栏壁纸
博主头像
丛庆

没事儿写代码,有事写代码。email:1024@cong.zone

  • 累计撰写 116 篇文章
  • 累计创建 97 个标签
  • 累计收到 4 条评论

【MySQL】【CentOS7】CentOS7安装MySQL8.0

丛庆
2022-09-10 / 0 评论 / 0 点赞 / 654 阅读 / 1,696 字 / 正在检测是否收录...
温馨提示:
部分资料和图片来源于网络,如有危害到您的利益请与我联系删除,1024@cong.zone。

系统环境:VM虚拟机下的CentOS7

安装前准备

主机名

执行以下命令

vim /etc/hostname

i进入编辑模式
修改预期的主机名,这里我将其修改为host16

修改完成后:按 esc ->按shift+;-> 输入wq->按 enter,即可保存成功

静态IP配置

查看网卡

确认VM虚拟机nat转换器的网段,点击编辑->点击虚拟网络编辑器
image-1662818839635

点击NAT模式查看子网地址,这里可以看到我的子网地址是192.168.146.0
image-1662818921405

在虚拟机中执行以下命令查看192.168.146.0对应的网卡名

ifconfig

可以看出ens33这个网卡对应该子网地址
image-1662819083819

输入以下命令编辑目标网卡的静态ip

vim /etc/sysconfig/network-scripts/ifcfg-ens33

image-1662819164454

这里我将100修改成了116,可以粘贴我的配置进行修改。
uuid随便修改一位就可以
修改完成后:按 esc ->按shift+;-> 输入wq->按 enter,即可保存成功
image-1662819197046

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=1975bb5f-ce00-4861-99ff-aebcd67d0b12
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.146.116
PREFIX=24
GATEWAY=192.168.146.2
DNS1=114.114.114.114

关闭防火墙或开放端口

这里我选择了关闭防火墙,关闭防火墙或开放端口参考:防火墙相关文章

重启

输入命令重启虚拟机

reboot

使用MobaXterm_Personal连接虚拟机

这里也可以使用xshell等其他终端、也可以使用虚拟机的终端。
image-1662819595968
输入地址和账号后点击OK

image-1662819625280
输入密码,这里输入密码是不会显示的,慢一点不要输入错。输入完成后按enter就可以了

检查是否已经安装了MySQL

rpm -qa | grep -i mysql

为空就是没有安装过
image-1662819789668

检查是否存在mysql service

systemctl status mysqld.service

如下显示就是没有mysql service
image-1662819904455

卸载MySQL

关闭 mysql 服务

systemctl stop mysqld.service

查看当前 mysql 安装状况

rpm -qa | grep -i mysql

yum list installed | grep mysql

逐个卸载查询的的结果

yum remove mysql-xxx mysql-xxx mysql-xxx mysqk-xxxx

检查是否卸载完成

反复执行 rpm -qa | grep -i mysql 确认是否有卸载残留

删除 mysql 相关文件

find / -name mysql

删除上述命令查找出的相关文件

rm -rf xxx

删除mysql相关文件

image-1667042045357
执行以下命令

rm -rf /usr/share/mysql
rm -rf /usr/share/mysql

image-1667042138871

rm -rf /etc/selinux/targeted/active/modules/100/mysql

image-1667042513295

删除 my.cnf

rm -rf /etc/my.cnf

安装MySQL

下载安装包

新建一个安装包目录

mkdir -p /root/app/mysql8
cd /root/app/mysql8
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar
ls

image-1662820624688

tar -xvf mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar
ls

解压出了很多rpm包
image-1662820687180

检查/tmp临时目录权限

由于mysql安装过程中,会通过mysql用户在/tmp目录下新建tmp_db文件,所以需要调高/tmp的操作权限。

ls -l /

我这里已经开启了
image-1662821174987
如果没有开启,执行以下命令授权

chmod -R 777 /tmp

安装依赖

已经安装了如下依赖也可以执行

yum install libaio net-tools -y

yum list installed | grep mysql

yum remove mysql-libs

卸载MariaDB

rpm -qa | grep mariadb
rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps
rpm -qa | grep mariadb

image-1662821680628

按顺序安装

rpm -ivh mysql-community-common-8.0.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.30-1.el7.x86_64.rpm

image-1662821960271
image-1662821973033

检查是否安装成功

mysql --version

出现如下信息代表安装成功
image-1662822199679

初始化服务

数据库目录和文件的所有者应该为mysql用户,如果你是 root用户运行 mysql 服务,需要执行以下命令进行初始化

mysqld --initialize --user=mysql

–initialize 选项默认以“安全”模式初始化,会为 root 用户生成临时密码,登录后需要重新设置密码。

查看临时密码

cat /var/log/mysqld.log

image-1662822440099

启动MySQL

systemctl start mysqld.service

关闭MySQL

systemctl stop mysqld.service

重启MySQL

systemctl restart mysqld.service

查看运行状态MySQL

systemctl status mysqld.service

开机自启动MySQL

查看MySQL服务是否自启动

systemctl list-unit-files|grep mysqld.service

默认是enable也就是开启了自启动
image-1662822617054
如不是enable运行以下命令开启

systemctl enable mysqld.service

关闭自启动

systemctl disable mysqld.service

登录MySQL

登陆前确保已经启动了MySQL服务端
查看MySQL服务端状态

systemctl status mysqld.service

下图是没有启动服务端的状态
image-1662822809472
启动服务端

systemctl start mysqld.service

再次查看状态

systemctl status mysqld.service

如下状态就是启动了
image-1662822865286

首次登录

mysql -hlocalhost -P3306 -uroot -p

输入上面用cat /var/log/mysqld.log命令查到的密码
这里粘贴后或输入后是不会显示的,慢一点不要输错,输入后按enter
image-1662822918787
这样就登录成功了
image-1662823015740

修改密码

因为初始化密码默认是过期的,所以操作数据库是会报错的

执行以下命令修改密码,密码需要复杂一些太简单会报错

ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';

设置远程登录

因为之前已经将防火墙关了,直接设置允许远程登陆就可以了,如果没有关闭防火墙或者开放端口点击防火墙相关文章设置一下

登录mysql后执行以下命令

use mysql;
select Host,User from user;

可以看到默认情况root账户只允许本机登录
image-1662823431213

Host修改为通配符%,既允许任何设备登录

update user set host = '%' where user ='root';

image-1662824047227
刷新配置

flush privileges;

image-1662824077060

Host指定了允许用户登录所使用的IP,比如user=root Host=192.168.146.2。这里的意思就是说root用户只能通过地址为192.168.146.2的客户端去登录。 user=root Host=localhost,表示只能通过本机客户端去访问。%是通配符,如果Host=192.168.146.%,只要是IP地址前缀为“192.168.146.”的客户端都可以登录。如果Host=%,表示所有IP都可以登录。

生产环境host设置为%,会存在安全问题,具体的设置根据实际情况评估

使用IDEA的database登录

image-1662824194577

image-1662824214031

如图按需配置
image-1662824286181

测试连接successful即可点击ok

选择所有的数据库
image-1662824388574

0

评论区