突然发现我的新服务器上没有mysql,所以想安装一个,上次在我的window电脑上安装MySQL8.0我真的要气死了,和5.7修改密码的方式不一样,弄了很久,所以我决定还是不用安装8.0了,5.7就可以了。安装MySQL有很多细节需要注意的,这应该就是为什么程序员经验那么重要的原因吧。
然后同样有两种方式安装,直接安装,或者放在docker里面安装,这里我为了省事就直接安装了。
进入正题:
首先我们需要去官网找下载地址,我就直接贴出来:http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
然后直接输入
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就可以啦,就可以远程访问了。
本博文参考的博文:https://blog.51cto.com/13043516/2093766
以及https://www.cnblogs.com/rongfengliang/p/5727088.html,谢谢两位作者!