centos7 安装mysql5.7以及一些细节问题
突然发现我的新服务器上没有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
然后可以查看mysql的端口号:
netstat -anplt
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
然后查看到
确实没有开放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就可以啦,就可以远程访问了。
本博文参考的博文:
以及,谢谢两位作者!