Linux下安裝MySQL的tar.gz包


 

  1. 以root用戶登錄待安裝的服務器。
  2. 上傳軟件包並解壓。
    1. 以root用戶通過sftp/ftp工具上傳“mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz”軟件包到“/opt”目錄 。
    2. 進入opt目錄,並解壓縮軟件包。

      # cd /opt/

      # tar -xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

    3. 將解壓后目錄改名為mysql。

      # mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql

  3. 安裝和初始化MySQL。
    1. 創建用戶和用戶組,並進行授權。
      1. 添加mysql組。

        # groupadd mysql

      2. 添加mysql用戶。

        # useradd -d /home/mysql -s /bin/bash -g mysql -m mysql

      3. 把mysql目錄授權給mysql用戶。

        # chown -R mysql:mysql /opt/mysql

      4. 在數據盤目錄下(如/data01),創建mysql-data目錄及子目錄tmp。

        # mkdir /data01/mysql-data

        # mkdir /data01/mysql-data/tmp

        # mkdir /data01/mysql-data/log

      5. 把mysql-data目錄及子目錄授權給mysql組中的mysql用戶。

        # chown -R mysql:mysql /data01/mysql-data

      6. mysql-data目錄的所屬群組修改為mysql。

        # chgrp -R mysql /data01/mysql-data

    2. 新建並編輯my.cnf文件。
      1. 在mysql目錄下新建並編輯my.cnf文件。

        # vi /opt/mysql/my.cnf

        輸入i進入編輯模式,按如下要求修改文件內容,修改完成后按Esc退出編輯模式,執行:wq!保存並退出。其中,“bind-address”參數請修改為MySQL服務器的地址。

        [mysqld]
        basedir = /opt/mysql 
        bind-address = 10.10.10.30
        datadir = /data01/mysql-data/workdbs
        tmpdir = /data01/mysql-data/tmp/
        port = 3306
        socket =/opt/mysql/lib/mysql.sock 
        lower_case_table_names=1 
        character-set-server = utf8
        max_allowed_packet = 150M
        sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,STRICT_ALL_TABLES 
        log-error=/data01/mysql-data/log/mysql_3306.log 
        max_connections=1000 
        event_scheduler=ON
        [mysql]
        default-character-set = utf8
        socket =/opt/mysql/lib/mysql.sock
      2. 執行如下命令,修改my.cnf文件的屬主。

        # chown mysql:mysql /opt/mysql/my.cnf

      3. 拷貝my.cnf文件到etc目錄下。

        # cp -fr /opt/mysql/my.cnf /etc/my.cnf

        說明:

        若etc目錄下已有my.cnf,會提示如下信息,請輸入yes,替換原有文件。

        cp: overwrite '/etc/my.cnf'?
    3. 修改系統配置文件profile。
      1. 編輯etc目錄下的“profile”文件。

        # vi /etc/profile

        輸入i進入編輯模式,在文件末尾添加如下內容:

        export PATH=$PATH:/opt/mysql/bin
        export PATH=$PATH:/etc/init.d

        添加完成后按Esc退出編輯模式,執行:wq!保存並退出。

      2. 重新加載etc目錄下的profile文件。

        # source /etc/profile

    4. 將mysql.server復制到/etc/init.d/ 。

      # cd /opt/mysql

      # cp -a ./support-files/mysql.server /etc/init.d/mysql.server

      說明:

      如果執行cp -a ./support-files/mysql.server /etc/init.d/mysqld命令,即重命名mysql.server文件為mysqld,則將使用mysqld作為MySQL的服務名,而不是mysql.server。

    5. 初始化mysql

      # cd /opt/mysql

      # ./bin/mysqld --initialize --user=mysql --basedir=/opt/mysql/ --datadir=/data01/mysql-data/workdbs

      命令執行后,如正確,則不會有顯示信息。

    6. 查看日志文件,獲取臨時密碼。

      # cat /data01/mysql-data/log/mysql_3306.log

      2018-03-17T08:10:25.707388Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more deta
      ils).
      2018-03-17T08:10:25.707430Z 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mo
      de in a future release.
      2018-03-17T08:10:25.707434Z 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not set.
      2018-03-17T08:10:26.864589Z 0 [Warning] InnoDB: New log files created, LSN=45790
      2018-03-17T08:10:27.068801Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
      2018-03-17T08:10:27.154126Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: a6a8df86-29b
      a-11e8-9a31-286ed48958fb.
      2018-03-17T08:10:27.161747Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
      2018-03-17T08:10:27.703898Z 0 [Warning] CA certificate ca.pem is self signed.
      2018-03-17T08:10:28.083190Z 1 [Note] A temporary password is generated for root@localhost: 9hkqi,g9ejD.

      獲取臨時密碼,如:“9hkqi,g9ejD.”。

    7. 創建軟連接。
      1. 將mysql的安裝目錄軟連接到local下面。

        # ln -s /opt/mysql /usr/local/mysql

      2. 將mysql.sock文件軟連接到tmp下面

        # ln -s /opt/mysql/lib/mysql.sock /tmp/mysql.sock

  4. 注冊並設置mysql.server服務為開機自啟動。

    # systemctl enable mysql.server.service

    說明:

    如果步驟3.d使用mysqld作為服務名,則注冊命令使用: systemctl enable mysqld.service

  5. 啟動並修改初始密碼。
    1. 在“/opt/mysql/support-files”目錄下啟動MySQL。

      # cd /opt/mysql/support-files

      # mysql.server start

      說明:
      • 步驟3.d使用的mysql的服務名為mysql.server時,mysql的啟動,停止,狀態檢查命令分別使用:
        • 啟動:service mysql.server start
        • 停止:service mysql.server stop
        • 狀態檢查:service mysql.server status
      • 步驟3.d使用的mysql的服務名為mysqld時,mysql的啟動,停止,狀態檢查命令分別使用:
        • 啟動:service mysqld start
        • 停止:service mysqld stop
        • 狀態檢查:service mysqld status
    2. 查看MySQL狀態。

      # mysql.server status

      系統顯示如下類似信息表示MySQL狀態正常:

      MySQL running (70442)                                                                done
      mysql.server.service - LSB: start and stop MySQL
         Loaded: loaded (/etc/init.d/mysql.server; bad; vendor preset: disabled)
         Active: active (running) since Fri 2018-03-16 17:56:01 CST; 6s ago
           Docs: man:systemd-sysv-generator(8)
        Process: 62130 ExecStop=/etc/init.d/mysql.server stop (code=exited, status=0/SUCCESS)
        Process: 70128 ExecStart=/etc/init.d/mysql.server start (code=exited, status=0/SUCCESS)
          Tasks: 28 (limit: 512)
         CGroup: /system.slice/mysql.server.service
                 ├─70153 /bin/sh /opt/mysql/bin/mysqld_safe --datadir=/data01/mysql-data/workdbs --pid-file=/data01/mysql-data/workdbs/NKG1000132347.pid
                 └─70442 /opt/mysql/bin/mysqld --basedir=/opt/mysql --datadir=/data01/mysql-data/workdbs --plugin-dir=/opt/mysql/lib/plugin --user=mysql --log-error=NKG1000132347.err --pid-file=/data01/mysql-data/workdbs/NKG1000132347.pid --socket=/opt/mysql/lib/mysql.sock --port=3306
    3. 在“opt/mysql/bin”目錄下執行以下命令登錄MySQL。

      # cd /opt/mysql/bin

      # mysql -u root -p

      按照提示信息輸入記錄的臨時密碼。

      Enter Password:

      登錄成功后系統顯示如下類似信息:

      Enter password: 
      Welcome to the MySQL monitor.  Commands end with ; or \g.
      Your MySQL connection id is 2
      Server version: 5.7.24-enterprise-commercial-advanced
      
      Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
      
      Oracle is a registered trademark of Oracle Corporation and/or its
      affiliates. Other names may be trademarks of their respective
      owners.
      
      Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
      
      mysql> 
    4. 修改root用戶密碼。

      mysql> set password=password('Password');

      其中,單引號中的Password由用戶自定義。

      說明:
      • 密碼不能與帳號或者帳號的倒寫相同。
      • 密碼長度8~32個字符。
      • 密碼必須至少包含如下三種字符的組合:
        • 至少一個小寫字母
        • 至少一個大寫字母
        • 至少一個數字
        • 至少一個特殊字符:`~!@#$%^&*()-_=+\|[{}];:'",<.>/?或空格
    5. 賦予任何主機訪問數據的權限。

      mysql> grant all privileges on *.* to 'root'@'%' identified by 'Password' with grant option;

      其中,單引號中的Password由用戶自定義。

    6. 使修改生效並使用數據庫。

      mysql> flush privileges;

      mysql> use mysql;

    7. 查看當前用戶。

      mysql> select host,user from user;

      系統顯示如下類似信息,表示數據庫已正常安裝和運行。

      +-----------+-----------+
      | host      | user      |
      +-----------+-----------+
      | %         | root      |
      | localhost | mysql.sys |
      | localhost | root      |
      +-----------+-----------+
      3 rows in set (0.01 sec)
    8. 退出MySQL數據庫。

      mysql> exit

  6. 將/opt/mysql/bin/目錄下的可執行程序mysql拷貝到/usr/bin目錄下,方便后續執行這個命令。

    # cp /opt/mysql/bin/mysql /usr/bin


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM