当前位置:   article > 正文

服务器之一 MySQL安装及出现的问题_a temporary password is generated for root@localho

a temporary password is generated for root@localhost:

总背景

前天开搞 SpringCloud,本来服务搭在虚拟机里啥事没有,等到一开始启动nacos集群时,完蛋了,idea启动不了了……服务器是时候安排上了。

于是我上网淘了一下阿里云,腾讯云,华为云,对比了两天,终于在昨天入手了阿里云的服务器,那边经理说 centos 比 alibaba cloud linux 要稳定,并装上了 centos8.4。后在安装 mysql 时在 mysqld initialize 这步死活安不进去。完了,操作系统得降版。

于是乎,本篇章完全基于 centos7.4 操作系统去完成的!!!!

一、 获取MySQL

1. 官网获取

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar
  • 1

2. 百度网盘

链接:https://pan.baidu.com/s/1iK0KQffS6yBesDAlCx6_qA
提取码:l15y

可下载一个 Xftp 7 的软件把压缩包放进服务器中。

二、安装

目录:/usr/local/mysql,压缩包就在这个目录里

1. 安装前

考虑到有些伙伴是先安装了 JDK 再安装 MySQL,所以我们要先把 JDK 给我们搞的一堆 mariadb 给删掉。

rpm -qa | grep mariadb

(如果有文件输出执行,如果没有就跳过)
rpm -e (文件名动手复制一下) --nodeps
  • 1
  • 2
  • 3
  • 4

rpm 命令后续会出个独立的文章

2. 解压

tar -xvf mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar
  • 1
  1. tar 命令后续会出个独立的文章。
  2. 由于这个压缩包是 【.tar】 后缀而不是 【.tar.gz】,所以这里不能用 【-zxvf】 只能用 【-xvf

解压出来如下

1. mysql-community-client-8.0.26-1.el7.x86_64.rpm
2. mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm
3. mysql-community-common-8.0.26-1.el7.x86_64.rpm
4. mysql-community-devel-8.0.26-1.el7.x86_64.rpm
5. mysql-community-embedded-compat-8.0.26-1.el7.x86_64.rpm
6. mysql-community-libs-8.0.26-1.el7.x86_64.rpm
7. mysql-community-libs-compat-8.0.26-1.el7.x86_64.rpm
8. mysql-community-server-8.0.26-1.el7.x86_64.rpm
9. mysql-community-test-8.0.26-1.el7.x86_64.rpm
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

其中我们用到的有四大模块:3,6,1,8

3. 安装四大模块,一个一个来,顺序3618

rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm --nodeps --force

rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm --nodeps --force

rpm -ivh mysql-community-client-8.0.26-1.el7.x86_64.rpm --nodeps --force

rpm -ivh mysql-community-server-8.0.26-1.el7.x86_64.rpm --nodeps --force
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

验证模块是否安装:rpm -qa | grep mysql
输出这四个就对了:

mysql-community-common-8.0.26-1.el7.x86_64
mysql-community-libs-8.0.26-1.el7.x86_64
mysql-community-server-8.0.26-1.el7.x86_64
mysql-community-client-8.0.26-1.el7.x86_64

4. 初始化

mysqld --initialize
  • 1

在用 centos8.4 时出现了一个死活初始化不了的问题,没给记录下来,很可能是 centos8 和 MySQL8.0 的版本不匹配问题,这里不做详细讨论。但现在又报了一个新的鬼东西

mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

上面标红的是关键,我们要进行安装 libaio,先执行 1 再初始化一下,还报错执行 2 再初始化。再报错百度吧,不做 if else if else 的傻逼操作了。

1. yum install -y libaio

2. yum install -y libaio.so.1
  • 1
  • 2
  • 3

到这里我们就安装完了,先把服务开起来。

systemctl start mysqld.service;
  • 1

有些小伙伴会说,他不是什么 service 启动吗?systemctl 是干什么的?
在 centos7.0 后,他就把 service 和 chkconfig 给统一到 systemctl 里了,里面把 service 的start, restart, stop 和 chkconfig 的 status 给全部放到这下面来了。具体的变化麻烦自行百度一下噢

那现在我可以通过我的 navicat 去连接了吗?答案是不行,他会报2003 。为什么?因为现在我们在里面配置的仅供内部使用,外部无法访问的,也就是我们的电脑去我们输入的地址问了MySQL,但得到的回答是:“没有,请回吧!” 这个东西只是你知道了而已。

接下来我们还需要配置一下其他东西,如外界访问,开机自启动等等。接着看!

三、后处理

1. 获取安装时的密码并做修改

咱知道,windows 上安装 MySQL 可以直接输入密码,但 linux 不一样,他在咱安装时就帮我们生成了个密码。现在我们要获取到这个密码了,不然数据库登录不上去。

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

输出一大串,其中 localhost: 后面就是密码,复制一下,注意别复制空格

A temporary password is generated for root@localhost: 5%SM+bI6gZb-

A. 登录 MySQL

输入以下命令,再把密码搞进去

mysql -u root -p
  • 1

登录成功输出:

Welcome to the MySQL monitor. 巴拉巴拉~

B. 修改密码

alter user 'root'@'localhost' identified with mysql_native_password by '0000';
  • 1

后面的那 四个0 就是我的密码,可以自己根据自己的习惯改。
修改成功后,退出 exit,再登录,输入自己的密码,显示登录成功后修改密码就完成了。

C. 授权过程连接

# 注意这里是 create,上面是 alter
create user 'root'@'%' identified with mysql_native_password by '0000';

# 授权外面可通过这个用户名密码文件所有文件
grant all privileges on *.* to 'root'@'%' with grant option;

# 刷新权限
flush privileges;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

2. 授权防火墙

防火墙这鬼东西,我也有点头疼,你说他好吧,他确实很好,毕竟安全第一,但你说他不好吧,好像也没错,什么鬼东西都被挡住了。我在windows上一直弄不懂这个防火墙怎么操作,谁教教我呗,嘿嘿嘿……

现在我们要给这个MySQL放行一下,嘿哥们,叫我的,自己人没事让他进来。

这么和防火墙通过气后,防火墙就知道了,就会让外界请求到内部的数据。具体是这样的

A. 咱先看看防火墙的配置

systemctl status firewalld
  • 1

这时我们看那个 active 不是 running 时就给他启动一下:systemctl start filewalld

B. 配置放行3306端口,并重载一下防火墙

firewall-cmd --zone=public --add-port=3306/tcp --permanent;

firewall-cmd --reload
  • 1
  • 2
  • 3
# 授权防火墙
chown mysql:mysql /var/lib/mysql -R;

# 配置MySQL开机启动
systemctl enable mysqld;
  • 1
  • 2
  • 3
  • 4
  • 5

现在差不多了。启动一下你的电脑数据库连接程序,把你的数据库的地址和密码输进去,这会应该可以连接成功了。但如果是服务器者也许还是不成功。

服务器开发者注意

如果以上都配置完成了还是无法访问,那多半就是服务器那里把这个端口拦截了。

以我现在的阿里云为例,我们需要这样操作一下:

1. 安全组配置

进入安全组配置,点击配置规则,点快速添加,把自己以后常用的端口给添加进去,就差不多了。

在这里插入图片描述

访问MySQL,成功!!

安装到此结束。若有奇奇怪怪的错误,麻烦百度一下,这里就不展开讲了。

结语

希望我们同代码一起携手共进,一起为自己的目标努力!!

由衷感谢您的观看,您的收获和支持就是我的最大动力!!再次感谢!

END

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/709238
推荐阅读
相关标签
  

闽ICP备14008679号