阿里雲、騰訊雲、CentOS下的MySQL的安裝與配置詳解

ergwang發表於2022-04-01

一、 安裝

  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

  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;
    

四、 新增新使用者並授權

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

  1. 背景

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

  2. 解決辦法

# 新增使用者(密碼可以為空)
CREATE USER '使用者名稱'@'登入許可權' IDENTIFIED BY '密碼';

image-20220401114532219

# 授權
GRANT 許可權列表 ON 資料庫名.表名 TO '使用者名稱'@'登入許可權'

image-20220401114847659

相關文章