zoukankan      html  css  js  c++  java
  • mysql安装及加固

    mysql安装

    查看是否安装mysql

    我们先看一下有没有安装mysql

    yum list installed mysql |  grep mysql

    本地只安装了php链接mysql的库,没有安装mysql

    如果有安装,可以使用安装的或者卸载了重新安装

    添加yum源

    去mysql官网查找yum源

    找到最新的https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm

    下面我就来安装下yum源

    sudo rpm -ivh https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm

    我们再看一下yum源是否安装成功

    yum repolist | grep mysql

    可以看到已经有mysql的yum源了

     

    查看mysql的版本

    yum repolist all | grep mysql

    可以看到很多被禁用了,现在比较稳定的最高稳定版本是8.0了;

    我们就安装这个吧

    yum安装

    sudo yum install mysql-community-server 

    下载安装完成,

    查看下安装目录

    whereis mysql

    启动/关闭mysql

    sudo systemctl start mysqld
    systemctl status mysqld //查看mysql的状态

    显示是启动了。

    查看初始密码(如无内容直接跳过)

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

    测试下是否真的启动成功

    sudo mysql -u root -p

    使用上一步得到的初始化密码登录,若没有初始化密码,则直接回车即可

    修改root密码

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';

    刷新MySQL的系统权限相关表

    mysql> flush privileges;

    退出登录,试下新密码登录,登录成功即完成了。

    php链接数据库

    php代码如下:

    <?php
    
    echo 6666666666;
    $con = mysql_connect("localhost","root","密码");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
    else{
      echo "login success.";
    }
    // some code
    //mysql_close($con);
    phpinfo();
    
    ?>

    访问http://192.168.189.134/phpinfo.php

    提示:Could not connect: Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory

    caching_sha2_password时mysql8默认的认证方式,好像使安装的mysql没有包含这个插件,以前版本的mysql使用的是mysql_native_password,我们修改为这个模式看看

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';

    刷新MySQL的系统权限相关表

    mysql> flush privileges;

    再访问http://192.168.189.134/phpinfo.php

    链接mysql成功。

     

    mysql基本操作

    1)数据库相关SQL的语句 a)显示当前用户下的数据库 show databases; b)创建数据库(语法参考? create database) create database pms; create database if not exists pms; create database if not exists pms character set utf8;

    说明:在mysql中一个用户下可以有很多数据库(DB)

    c)使用或打开数据库 ​ use database; ​ 查看当前正在使用的数据库:select database(); ​ d)删除数据库(语法? drop database) ​ drop database pms; ​ drop database if exists pms;

    2)MySQL中表的相关操作?(DDL) a)创建表(语法? create table) create table if not exists pet( id int primary key auto_increment, name varchar(100) not null ); 当需要查看某张表的创建语句时,可以使用 show create table pet 当需要显示表结构时可以使用: desc pet b)修改表(语法?alter table);不作为重点,自己了解 c)删除表(语法?drop table) drop table if exists pet;

    3)MySQL表中数据的操作?(DML) 1)向表中写入数据(insert) insert into pet values (null,'A'); insert into pet(id,name) values (null,'B'); insert into pet(name)values('C'); insert into pet(name)values('D'),('E'); 2)查询表中数据(select) select * from pet; select id,name from pet; select id,name from pet where id=10;

    分页查询:limit 语句的应用(语法参考?select) ​ select * from pet limit 2; --2为row_count(表示要取几条数据) ​ select * from pet limit 4,2; --4表示offset,2表示 row_count ​ select * from pet limit 2 offset 4;

    mysql加固

    禁止 Mysql 以管理员帐号权限运行

    以普通帐户安全运行 mysqld,禁止以管理员帐号权限运行 MySQL 服务。在 /etc/my.cnf 配置文件中进行以下设置

    user=mysql

    口令安全

    检查账户默认密码和弱密码。口令长度需要至少八位,并包括数字、小写字母、大写字母和特殊符号四类中的至少两种类型,且五次以内不得设置相同的口令。密码应至少每 90 天进行一次更换。

    下面命令修改密码

    mysql> update user set password=password('test!p3') where user='root'; 
    mysql> flush privileges;

    弱密码很容易被爆破,所以密码复杂的要够,生命周期要限制,定期更换。

    关闭远程访问

    这种仅限于应用和数据库在同一台主机的情况,如果不同主机,那就不能禁止远程访问了

    关闭远程访问可以通过禁止远程 TCP/IP 连接,通过在 MySQL 服务器的启动参数中添加--skip-networking参数使 MySQL 服务不监听任何 TCP/IP 连接,增加安全性。

    参考资料

    https://help.aliyun.com/knowledge_detail/49568.html

     

     

     

     

  • 相关阅读:
    3.1按钮
    2.1线性布局
    2.2相对布局
    1.4Activity保存现场状态
    1.1Activity跳转与传值
    1.2Activity返回值
    1.3Activity生命周期
    WebSocket
    Jms消费者模式
    课堂实践5-31
  • 原文地址:https://www.cnblogs.com/alummox/p/11370964.html
Copyright © 2011-2022 走看看