1. 程式人生 > >CentOS7下yum安裝MySQL5.7

CentOS7下yum安裝MySQL5.7

  1. 配置 yum 源

    • 下載 mysql 源安裝包

      shell> wget http://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm
      
    • 安裝MySQL源

      shell> yum localinstall mysql57-community-release-el6-9.noarch.rpm
      
    • 檢查 YUM 源是否安裝成功

      shell> yum repolist enabled | grep "mysql.*-community.*"
      mysql-connectors-community           MySQL Connectors Community              21
      mysql-tools-community                MySQL Tools Community                   38
      mysql57-community                    MySQL 5.7 Community Server             130
      
  2. 安裝MySQL

    $ sudo yum install mysql-community-server
    
    • 此時安裝時會出現以下報錯:
      在這裡插入圖片描述

    • 解決辦法:修改/etc/yum.repos.d/mysql-community.repo 原始檔,增加一行,將6改為7,並註釋掉原來那一行
      在這裡插入圖片描述

    • 此時重新執行yum安裝命令:

    • $ sudo yum install mysql-community-server
      
  3. 啟動MySQL服務

    • 開機自啟動服務

      $ sudo systemctl enable mysqld
      
    • 啟動MySQL服務

      $ sudo systemctl start mysqld
      
    • 檢視服務狀態

      $ sudo systemctl status mysqld
      
  4. 修改root預設密碼

    • 檢視預設密碼

      MySQL 5.7 啟動後,在 /var/log/mysqld.log 檔案中給 root 生成了一個預設密碼;檢視此檔案找到密碼
      在這裡插入圖片描述

    • 使用預設的root密碼登入MySQL並修改root的密碼

      $ mysql -u root -p
      Enter password: 
      mysql> ALTER USER 'root'@'localhost'
      IDENTIFIED BY 'MyNewPass4!';

      注意:MySQL 5.7 預設安裝了密碼安全檢查外掛(validate_password),預設密碼檢查策略要求密碼必須包含:大小寫字母、數字和特殊符號,並且長度不能少於 8 位。

    • 通過 MySQL 環境變數可以檢視密碼策略的相關資訊:

      mysql> SHOW VARIABLES LIKE 'validate_password%';
      +--------------------------------------+--------+
      | Variable_name                        | Value  |
      +--------------------------------------+--------+
      | validate_password_check_user_name    | OFF    |
      | validate_password_dictionary_file    |        |
      | validate_password_length             | 8      |
      | validate_password_mixed_case_count   | 1      |
      | validate_password_number_count       | 1      |
      | validate_password_policy             | MEDIUM |
      | validate_password_special_char_count | 1      |
      +--------------------------------------+--------+
      
    • 指定密碼校驗策略:

      $ sudo vi /etc/my.cnf
      

      新增如下鍵值(0=LOW, 1=MEDIUM, 2=STRONG),將值改為0之後只校驗密碼的長度,不再校驗複雜度,可設定為12345678

      validate_password_policy=0
      
    • 禁用密碼策略:

      新增如下鍵值,此時再重啟MySQL服務後,可將MySQL密碼設定為任何值,如:0

      validate_password = off
      
    • 重啟 MySQL 服務,使配置生效

      $ sudo systemctl restart mysqld
      
  5. 使使用者可遠端登入

    MySQL 預設只允許 root 帳戶在本地登入,如果要在其它機器上連線 MySQL,必須修改 root 允許遠端連線,或者新增一個允許遠端連線的帳戶,為了安全起見,本例新增一個mysql密碼為1的新賬戶:

    mysql> select Host,User from mysql.user;
    +-----------+---------------+
    | Host      | User          |
    +-----------+---------------+
    | localhost | mysql.session |
    | localhost | mysql.sys     |
    | localhost | root          |
    +-----------+---------------+
    3 rows in set (0.00 sec)
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'mysql'@'%' IDENTIFIED BY '1' WITH GRANT OPTION;
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)
    

    ALL:代表接受所有操作,比如 select,insert,delete….;

    .:代表所有庫下面的所有表;

    %:代表這個使用者允許從任何地方登入;為了安全期間,這個%可以替換為你允許的ip地址;

  6. 配置預設編碼為utf8

    • MySQL 預設為 latin1, 一般修改為 UTF-8

      $ vi /etc/my.cnf
      
    • 在[myslqd]下新增如下鍵值對

      character_set_server=utf8
      init_connect='SET NAMES utf8'
      
    • 重啟 MySQL 服務,使配置生效

      $ sudo systemctl restart mysqld
      
    • 檢視編碼格式是否已經生效

      mysql> SHOW VARIABLES LIKE 'character%';
      +--------------------------+----------------------------+
      | Variable_name            | Value                      |
      +--------------------------+----------------------------+
      | character_set_client     | utf8                       |
      | character_set_connection | utf8                       |
      | character_set_database   | utf8                       |
      | character_set_filesystem | binary                     |
      | character_set_results    | utf8                       |
      | character_set_server     | utf8                       |
      | character_set_system     | utf8                       |
      | character_sets_dir       | /usr/share/mysql/charsets/ |
      +--------------------------+----------------------------+
      
  7. 開啟防火牆埠

    $ sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
    $ sudo firewall-cmd --reload
    

轉自:https://qizhanming.com/blog/2017/05/10/centos-7-yum-install-mysql-57