赞
踩
前天开搞 SpringCloud,本来服务搭在虚拟机里啥事没有,等到一开始启动nacos集群时,完蛋了,idea启动不了了……服务器是时候安排上了。
于是我上网淘了一下阿里云,腾讯云,华为云,对比了两天,终于在昨天入手了阿里云的服务器,那边经理说 centos 比 alibaba cloud linux 要稳定,并装上了 centos8.4。后在安装 mysql 时在 mysqld initialize 这步死活安不进去。完了,操作系统得降版。
于是乎,本篇章完全基于 centos7.4 操作系统去完成的!!!!
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar
链接:https://pan.baidu.com/s/1iK0KQffS6yBesDAlCx6_qA
提取码:l15y
可下载一个 Xftp 7 的软件把压缩包放进服务器中。
目录:
/usr/local/mysql
,压缩包就在这个目录里
考虑到有些伙伴是先安装了 JDK 再安装 MySQL,所以我们要先把 JDK 给我们搞的一堆 mariadb 给删掉。
rpm -qa | grep mariadb
(如果有文件输出执行,如果没有就跳过)
rpm -e (文件名动手复制一下) --nodeps
rpm 命令后续会出个独立的文章
tar -xvf mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar
- tar 命令后续会出个独立的文章。
- 由于这个压缩包是 【
.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
其中我们用到的有四大模块:3,6,1,8
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
验证模块是否安装:
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
mysqld --initialize
在用 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
到这里我们就安装完了,先把服务开起来。
systemctl start mysqld.service;
有些小伙伴会说,他不是什么 service 启动吗?systemctl 是干什么的?
在 centos7.0 后,他就把 service 和 chkconfig 给统一到 systemctl 里了,里面把 service 的start
,restart
,stop
和 chkconfig 的status
给全部放到这下面来了。具体的变化麻烦自行百度一下噢
那现在我可以通过我的 navicat 去连接了吗?答案是不行,他会报2003 。为什么?因为现在我们在里面配置的仅供内部使用,外部无法访问的,也就是我们的电脑去我们输入的地址问了MySQL,但得到的回答是:“没有,请回吧!” 这个东西只是你知道了而已。
接下来我们还需要配置一下其他东西,如外界访问,开机自启动等等。接着看!
咱知道,windows 上安装 MySQL 可以直接输入密码,但 linux 不一样,他在咱安装时就帮我们生成了个密码。现在我们要获取到这个密码了,不然数据库登录不上去。
cat /var/log/mysqld.log | grep password
输出一大串,其中 localhost:
后面就是密码,复制一下,注意别复制空格
A temporary password is generated for root@localhost: 5%SM+bI6gZb-
输入以下命令,再把密码搞进去
mysql -u root -p
登录成功输出:
Welcome to the MySQL monitor. 巴拉巴拉~
alter user 'root'@'localhost' identified with mysql_native_password by '0000';
后面的那 四个0 就是我的密码,可以自己根据自己的习惯改。
修改成功后,退出 exit
,再登录,输入自己的密码,显示登录成功后修改密码就完成了。
# 注意这里是 create,上面是 alter
create user 'root'@'%' identified with mysql_native_password by '0000';
# 授权外面可通过这个用户名密码文件所有文件
grant all privileges on *.* to 'root'@'%' with grant option;
# 刷新权限
flush privileges;
防火墙这鬼东西,我也有点头疼,你说他好吧,他确实很好,毕竟安全第一,但你说他不好吧,好像也没错,什么鬼东西都被挡住了。我在windows上一直弄不懂这个防火墙怎么操作,谁教教我呗,嘿嘿嘿……
现在我们要给这个MySQL放行一下,嘿哥们,叫我的,自己人没事让他进来。
这么和防火墙通过气后,防火墙就知道了,就会让外界请求到内部的数据。具体是这样的
systemctl status firewalld
这时我们看那个 active 不是 running 时就给他启动一下:
systemctl start filewalld
firewall-cmd --zone=public --add-port=3306/tcp --permanent;
firewall-cmd --reload
# 授权防火墙
chown mysql:mysql /var/lib/mysql -R;
# 配置MySQL开机启动
systemctl enable mysqld;
现在差不多了。启动一下你的电脑数据库连接程序,把你的数据库的地址和密码输进去,这会应该可以连接成功了。但如果是服务器者也许还是不成功。
如果以上都配置完成了还是无法访问,那多半就是服务器那里把这个端口拦截了。
以我现在的阿里云为例,我们需要这样操作一下:
进入安全组配置,点击配置规则,点快速添加,把自己以后常用的端口给添加进去,就差不多了。
访问MySQL,成功!!
安装到此结束。若有奇奇怪怪的错误,麻烦百度一下,这里就不展开讲了。
希望我们同代码一起携手共进,一起为自己的目标努力!!
由衷感谢您的观看,您的收获和支持就是我的最大动力!!再次感谢!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。