阿里雲、騰訊雲、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版本的源 //dev.mysql.com/downloads/repo/yum/

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

      image-20220401100659086

    3. 開始動手

      # 添加MySQL5.7的源
      wget //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
    
    # 重置密碼(密碼要滿足要求,就是要複雜一點)
    # 如果想要簡單的密碼,要修改密碼策略 參考 //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

  1. 原因

    用戶Host屬性為localhost,就只能伺服器本地連接,所以連不上

  2. 解決辦法

    將Host屬性改為通配符『%』,遠端就可以了

    # 登錄MySQL
    mysql -uroot -p
    
    # 修改當前資料庫
    use mysql;
    
    # 查看用戶的Host屬性
    select User,Host from user;
    
    # 修改用戶屬性
    update user set host = '%' where user = 'root';
    
    # 刷新許可權
    flush privileges;
    

四、 添加新用戶並授權

參考 //www.jianshu.com/p/d7b9c468f20d

  1. 背景

    大多數情況下,為了保證數據安全,我們的資料庫操作都不是用root用戶,某些用戶只能讀,某些用戶可寫可讀,某些用戶只能操作某一個資料庫而不是整個MySQL資料庫

  2. 解決辦法

# 新增用戶(密碼可以為空)
CREATE USER '用戶名'@'登錄許可權' IDENTIFIED BY '密碼';

image-20220401114532219

# 授權
GRANT 許可權列表 ON 資料庫名.表名 TO '用戶名'@'登錄許可權'

image-20220401114847659