阿里云、腾讯云、CentOS下的MySQL的安装与配置详解

一、 安装

  1. 查看是否已安装

    # 查看MySQL版本
    mysql --version
    
    # 查看MySQL相关文件
    whereis mysql
    
    image-20220401093756702
  2. 若已安装,卸载方法如下

    # 卸载MySQL
    yum remove mysql
    
  3. 安装

    1. 查看yum源可安装的MySQL版本

      # 查看可安装的MySQL版本
      yum repolist all | grep mysql
      

      image-20220401100415986

    2. 一个都没有。。。因为某些原因,CentOS默认的yum源不提供MySQL了,所以要去官网获取适合自己系统版本的MySQL版本的源 https://dev.mysql.com/downloads/repo/yum/

      #查看Centos版本的命令
      cat /etc/issue
      

      image-20220401100659086

    3. 开始动手

      # 添加MySQL5.7的源
      wget http://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
      sudo yum localinstall mysql80-community-release-el7-5.noarch.rpm -y
      

      image-20220401102154315

      image-20220401102252234

      # 再次查看yum源MySQL版本
      yum repolist enabled | grep mysql
      

      image-20220401102452170

      # 安装MySQL
      sudo yum install mysql-server -y
      
      # 查看安装的版本
      mysql --version
      

      image-20220401102723875

    4. 启动MySQL数据库

      # 启动MySQL
      sudo service mysqld start
      # 重启MySQL
      sudo service mysqld restart
      # 查看MySQL状态
      sudo service mysqld status
      # 停止MySQL
      sudo service mysqld stop
      

      image-20220401105533241

二、 初始密码、重置密码、修改密码

  1. 获取初始密码

    # 获取初始密码
    sudo grep 'temporary password' /var/log/mysqld.log
    

    image-20220401110040423

  2. 修改密码

    # 用初始密码登录
    mysql -uroot -p
    
    # 重置密码(密码要满足要求,就是要复杂一点)
    # 如果想要简单的密码,要修改密码策略 参考 https://www.cnblogs.com/liuhedong/p/11131693.html
    ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';
    
    ## 我修改了长度和策略(策略为0,长度限制最新6位)
    Set Persist validate_password.policy = 0;
    Set Persist validate_password.length = 6;
    
  3. 忘记密码重置密码

    # 查询配置文件位置
     mysql --help|grep 'my.cnf'
    

    image-20220401111449476

    # 修改配置文件 在[mysqld]下添加参数skip-grant-tables
    vim /etc/my.cnf
    # 重启MySQL
    sudo service mysqld restart
    

    image-20220401111754338

    # 无密码登录
    mysql -u root
    # 密码设为空(试过了,不能修改密码,只能为空)
    use mysql;
    update user set authentication_string = '' where user = 'root';
    # 修改配置文件 删除参数skip-grant-tables
    vim /etc/my.cnf
    # 重启MySQL
    sudo service mysqld restart
    # 无密码登录
    mysql -u root
    # 修改密码
    ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';
    

三、修改host实现远程连接

  1. 背景
    数据库装好了!
    密码也整好了!
    端口也配置好了!
    云服务器端口也开放了!
    navicat还是 连不上 远程服务器的数据库!!!!
    image-20220401114015776

  2. 原因

    用户Host属性为localhost,就只能服务器本地连接,所以连不上

  3. 解决办法

    将Host属性改为通配符‘%’,远端就可以了

    # 登录MySQL
    mysql -uroot -p
    
    # 修改当前数据库
    use mysql;
    
    # 查看用户的Host属性
    select User,Host from user;
    
    # 修改用户属性
    update user set host = '%' where user = 'root';
    
    # 刷新权限
    flush privileges;
    

四、 添加新用户并授权

参考 https://www.jianshu.com/p/d7b9c468f20d

  1. 背景

    大多数情况下,为了保证数据安全,我们的数据库操作都不是用root用户,某些用户只能读,某些用户可写可读,某些用户只能操作某一个数据库而不是整个MySQL数据库

  2. 解决办法

# 新增用户(密码可以为空)
CREATE USER '用户名'@'登录权限' IDENTIFIED BY '密码';

image-20220401114532219

# 授权
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'登录权限'

image-20220401114847659

posted @ 2022-04-01 14:05  浪漫主义程序员  阅读(114)  评论(0编辑  收藏  举报