在Linux上安装MySQL

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

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

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

  4. 本地安装

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

    • 第二步

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

    $ yum install mysql-community-server
    

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

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

    $ ps -ef|grep mysql
    

3 修改MySQL密码

  1. 查询MySQL的临时密码

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

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

    mysql -uroot -p{临时密码}
    

  3. 修改密码

    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会有密码复杂度要求,所以先设置一个复杂的,后面在修改密码设置
    

    然后刷新权限

    flush privileges;
    

4 创建用户

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

5 解决 Unknown system variable ‘validate_password_policy’

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

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

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

mysql> SHOW VARIABLES LIKE 'validate_password%';

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)

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】,让我们一起成长,谢谢。
微信公众号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值