centos7.x 安装 MySQL5.7

最新写了一个小项目需要部署到远程服务器,就在阿里云买了一台centos7.x的服务器,想找个完整的教程,却发现都是坑,要不执行到一半执行不下去,要不就是命令错误,经过多次踩坑总结如下:

1. 下载安装包
        wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
未安装wget的同学执行以下命令安装

        sudo yum install wget
2. 安装
        sudo rpm -ivh mysql57-community-release-el7-8.noarch.rpm
        sudo yum install mysql-server
3. 设置密码
    当第一次启动MySQL服务器时,为MySQL根用户生成一个临时密码。 您可以通过运行以下命令找到密码:
        sudo grep 'temporary password' /var/log/mysqld.log
输出如下内容:

centos7.x 安装 MySQL5.7

如果这个文件为空:
   a.删除原来安装过的mysql残留的数据(这一步非常重要,问题就出在这)
        rm -rf /var/lib/mysql
   b.重启mysqld服务
        systemctl restart mysqld
   c.再去找临时密码
        grep ‘temporary password’ /var/log/mysqld.log
   d.localhost:后边的就是临时密码,先复制下来
4. 配置mysql安装项:
   sudo mysql_secure_installation

输入刚才的临时密码
接下来mysql会提示你输入新的密码,和一下其他设置,一般情况下我们都会输入y(密码必须至少包含8个字符并且至少包含一个大写字母,一个小写字母,一个数字和一个特殊字符。)

centos7.x 安装 MySQL5.7

看到All done!表示配置已经完成,尝试远程访问一下

centos7.x 安装 MySQL5.7

访问成功,但是在利用SQLyog工具连接出现了问题

centos7.x 安装 MySQL5.7

出现这种现象的原因有两个,一个是当前用户被mysql服务器拒绝,另外一个原因是3306端口被被防火墙禁掉,无法连接到该端口。解决方法如下:
1,设置所有主机都可以访问,关闭防火墙

        GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION; 
        FLUSH PRIVILEGES;  
2,关闭防火墙
在CentOS7中关闭防火墙使用以下命令,
        //临时关闭

        systemctl stop firewalld
//禁止开机启动

        systemctl disable firewalld
当然,如果安装了iptables-service,也可以使用下面的命令,

        yum install -y iptables-services
//关闭防火墙

        service iptables stop
//检查防火墙状态

        service iptables status
如果是阿里云ecs服务器的话需要设置开放端口号,在服务器控制台找到 安全组-配置规则-添加安全组规则

centos7.x 安装 MySQL5.7

如果是轻量级服务器的话,可参考https://yq.aliyun.com/articles/423205

centos7.x 安装 MySQL5.7