欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

centos7 安装mysql5.7以及一些细节问题

程序员文章站 2022-05-02 12:27:48
突然发现我的新服务器上没有mysql,所以想安装一个,上次在我的window电脑上安装MySQL8.0我真的要气死了,和5.7修改密码的方式不一样,弄了很久,所以我决定还是不用安装8.0了,5.7就可以了。安装MySQL有很多细节需要注意的,这应该就是为什么程序员经验那么重要的原因吧。 然后同样有两 ......

       突然发现我的新服务器上没有mysql,所以想安装一个,上次在我的window电脑上安装mysql8.0我真的要气死了,和5.7修改密码的方式不一样,弄了很久,所以我决定还是不用安装8.0了,5.7就可以了。安装mysql有很多细节需要注意的,这应该就是为什么程序员经验那么重要的原因吧。

然后同样有两种方式安装,直接安装,或者放在docker里面安装,这里我为了省事就直接安装了。

进入正题:

       首先我们需要去官网找下载地址,我就直接贴出来:

然后直接输入

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

然后就可以开始安装了:

yum -y install mysql57-community-release-el7-10.noarch.rpm

这里就不放图片了,看到complete!就是成功了。

有了rpm之后,我们就可以直接安装mysql了:

yum -y install mysql-community-server

安装完之后我们需要重启mysql:

systemctl restart mysqld 

centos7 安装mysql5.7以及一些细节问题

然后可以查看mysql的端口号:

netstat -anplt

centos7 安装mysql5.7以及一些细节问题

mysql默认端口号是 3306 ,但是此时我们不知道mysql的密码,我们需要去找到密码:

grep "password" /var/log/mysqld.log

找到之后就进入mysql:

mysql -uroot -p

然后输入刚才的密码就进入mysql了,但是不能做任何事情,因为mysql默认必须修改密码之后才能操作数据库修改密码命令:

alter user 'root'@'localhost' identified by '123';

这里mysql会提示你密码过于简单,无法修改,正常需要8位长度,混合大小写以及一位特殊符号。

重新修改完成之后,我们可以查看密码规则:

show variables like 'validate_password%';

然后再修改密码规则:

set global validate_password_policy=low;

设置密码长度:

set global validate_password_length=6;

再次修改密码就行了。为了防止更新带了的问题,我们需要删除源自动更新,因为安装了yum repository,以后每次yum操作都会自动更新,因为当前数据库已安装完成,所以把这个卸载掉:

yum remove mysql57-community-release.noarch

然后初始化数据库:

mysql_secure_installation

这是我们需要输入密码,然后一直按回车就可以了。那么mysql就安装好了,那此时我们发现并不能远程登陆。

所以首先我们需要防火墙开放3306的端口。

firewall-cmd --list-ports

然后查看到centos7 安装mysql5.7以及一些细节问题

确实没有开放3306这个端口,开放端口

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

重启防火墙,一定要重启才有效:

systemctl restart firewalld

如果是阿里云服务器的话,需要进入控制台将服务器防火墙的规则修改,开放3306这个端口就可以了。当一切都做好的时候,发现还是无法远程连接mysql,这个时候需要进入mysql授权远程登陆:先进入mysql,然后

use mysql

然后将所有数据库的所有表(*.*)的所有权限(all privileges),授予通过任何ip(%)访问的root用户,密码为1234

mysql> grant all privileges on *.* to 'root'@'%' identified by '1234';

最后刷新就可以了

flush privileges;

然后退出mysql,在重启mysql就可以啦,就可以远程访问了。

本博文参考的博文:

以及,谢谢两位作者!