1 下载MySQL的Linux版本安装包

1、进入MySQL的官网,下载相应的版本。

2、选择MySQL Community (GPL) Downloads »

3、选择MySQL Yum Repository

4、选择Red Hat Enterprise Linux 7 / Oracle Linux 7 (Architecture Independent), RPM Package,点击DownLoad

5、跳转到登录页面,点击下方**No thanks, just start my download.**

2 安装

  1. 首先检查是否安装了MySQL

    1
    $ rpm -qa|grep mysql
  2. 如果已经安装,先卸载mysql (下面是卸载mysql的库,防止产生冲突,mysql也是类似卸载方式)

    1
    2
    3
    4
    $  rpm -e --nodeps mysql-libs-5.1.*
    卸载之后,记得:
    find / -name mysql
    删除查询出来的所有东西
  3. 将下载好的rpm文件上传到CentOS服务器上

  4. 本地安装

    • 第一步
    1
    $ yum localinstall mysql80-community-release-el7-3.noarch.rpm

    • 第二步

    上面安装完成之后,然后执行下面的命令安装MySQL服务器

    1
    $ yum install mysql-community-server

  5. 安装完毕,启动MySQL服务

    1
    $ service mysqld start
  6. 查看mysql服务是否启动成功

    1
    $ ps -ef|grep mysql

3 修改MySQL密码

  1. 查询MySQL的临时密码

    1
    grep 'temporary password' /var/log/mysqld.log

  2. 复制临时密码,然后登录MySQL

    1
    mysql -uroot -p{临时密码}

  3. 修改密码

    1
    2
    3
    4
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
    grant all privileges on *.* to 'root'@'%' identified by '数据库密码' with grant option;
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123');
    # 默认MySQL会有密码复杂度要求,所以先设置一个复杂的,后面在修改密码设置

    然后刷新权限

    1
    flush privileges;

4 创建用户

1
2
create user '你的用户名'@'%' identified with mysql_native_password by '你的密码';
grant all on *.* to '你的用户名'@'%'; # 刷新权限

5 解决 Unknown system variable ‘validate_password_policy’

再修改MySQL8密码的时候,会提示密码太简单,不符合规范,可以先设置一个符合要求的密码,然后再修改密码验证规则。

1
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements。 

设置密码成功之后,查看密码验证插件是否安装以及设置的参数:

1
mysql> SHOW VARIABLES LIKE 'validate_password%';

1
2
3
4
mysql> set global validate_password.policy=0;
mysql> set global validate_password.length=1;
mysql> set global validate_password.mixed_case_count=0;
mysql> set global validate_password.special_char_count=0;

6 解决LNMP一键包安装后解决MySQL无法远程连接问题

lnmp一键安装包默认的站点根目录是 /home/wwwroot/defualt,当然你也可以创建虚拟主机,方法参见官网 虚拟主机配置,此处不作多说明。一切安装好后,我在本地用Navicat For Mysql 连接时,居然报错,2003 不能连接MySql服务器”XXXXX”10061)

1
2
3
4
5
6
7
mysql>GRANT ALL PRIVILEGES ON *.* TO 'your_username'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES //更新权限(也就是更新mysql内置的权限表)
//ON后面第一个*代表对所有数据库执行这个权限修改命令,第二个*代表所有表啦,
//@后面的%代表针对所有外网ip地址赋予可访问权限
<!--下面查看修改成功后的权限-->
mysql> use mysql;
mysql> select user,password,host from user;

Linux防火墙(Mysql的3306端口没有对外开放)为了安全LNMP默认是禁止远程连接的

  1. 查看已有的iptables规则,以序号显示,linux终端输入以下命令:
    iptables -L -n --line-numbers

  2. 发现第五条对应的3306端口是Drop(拒接)的,所以我们需要手动开启,输入以下命令开启,linux终端输入以下命令:
    iptables -D INPUT 5

  3. 再次测试下,MySQL已经可以远程登录了。

Reference

写在最后

欢迎大家关注鄙人的公众号【麦田里的守望者zhg】,让我们一起成长,谢谢。
微信公众号