日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

在本文中,我們將學習如何更改MySQL數據目錄或將MySQL數據庫數據重新定位到新位置,這種情況可能會在數據庫增長非常快時使用,或者出于某些安全原因我們想要移動將數據目錄復制到新位置。

先決條件

    一臺 Ubuntu 計算機,且非 root 用戶具有 Sudo 權限。MySQL已安裝并正在運行。我們想要將數據庫數據位置移動到的新卷或位置,新位置將是/mnt/data_vol/MySQL,因為data_vol是連接到計算機的新卷

    更改 MySQL 數據文件夾位置

    在繼續之前,我們首先找到數據目錄的當前位置

    $ mysql –u root –p
    Output:
    Enter password:
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 472
    Server version: 5.6.30-0ubuntu0.14.04.1 (Ubuntu)
    Copyright (c) 2000, 2016, 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>

    登錄后復制

    當提示輸入 MySQL 的 root 密碼時,請輸入密碼。運行以下命令即可了解MySQL當前的工作數據目錄。

    Mysql> select @@datadir;
    Output:
    +-----------------+
    | @@datadir       |
    +-----------------+
    | /var/lib/mysql/ |
    +-----------------+
    1 row in set (0.00 sec)

    登錄后復制

    如輸出所示,MySQL 數據庫使用 /var/lib/MySQL 作為默認文件夾作為數據目錄。在我們修改任何內容之前,我們將檢查數據的完整性,我們將停止 MySQL 并檢查狀態

    $ sudo systemctl stop mysql

    登錄后復制

    因為 systemctl 不會顯示 services 命令的任何內容

    $ sudo systemctl status mysql
    Output:
    mysql.service - MySQL Community Server
       Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
       Active: inactive (dead) since Mon 2016-09-12 13:57:43 IST; 1s ago
       Process: 17669 ExecStartPost=/usr/share/mysql/mysql-systemd-start post (code=exited, status=0/SUCCESS)
       Process: 17668 ExecStart=/usr/sbin/mysqld (code=exited, status=0/SUCCESS)
       Process: 17664 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
       Main PID: 17668 (code=exited, status=0/SUCCESS)
    Sep 12 13:55:14 ubuntu-16 systemd[1]: Starting MySQL Community Server...
    Sep 12 13:55:15 ubuntu-16 systemd[1]: Started MySQL Community Server.
    Sep 12 13:57:40 ubuntu-16 systemd[1]: Stopping MySQL Community Server...
    Sep 12 13:57:43 ubuntu-16 systemd[1]: Stopped MySQL Community Server.

    登錄后復制

    一旦我們確認MySQL已停止,我們就會將數據移動到新位置。為了移動數據,我們將使用帶有 –a 選項的 Rsync,該選項保留數據文件的權限,以及 –v 顯示詳細輸出。

    下面是將數據移動到新位置的完整命令–

    $ rsync –av /var/lib/mysql /mnt/data_vol/
    OutPut:
    sending incremental file list
    mysql/
    mysql/auto.cnf
    mysql/debian-5.7.flag
    mysql/ib_buffer_pool
    mysql/ib_logfile0
    mysql/ib_logfile1
    mysql/ibdata1
    mysql/mysql/
    mysql/mysql/columns_priv.MYD
    mysql/mysql/columns_priv.MYI
    mysql/mysql/columns_priv.frm
    mysql/mysql/db.MYD
    mysql/mysql/db.MYI
    mysql/mysql/db.frm
    mysql/mysql/db.opt
    ….
    mysql/sys/x@0024user_summary.frmmysql/sys/x@0024user_summary_by_file_io.frm
    mysql/sys/x@0024user_summary_by_file_io_type.frm
    mysql/sys/x@0024user_summary_by_stages.frm
    mysql/sys/x@0024user_summary_by_statement_latency.frm
    mysql/sys/x@0024user_summary_by_statement_type.frm
    mysql/sys/x@0024wait_classes_global_by_avg_latency.frm
    mysql/sys/x@0024wait_classes_global_by_latency.frm
    mysql/sys/x@0024waits_by_host_by_latency.frm
    mysqlsys//x@0024waits_by_user_by_latency.frm
    mysql/sys/x@0024waits_global_by_latency.frm
    sent 199,384,083 bytes received 6,858 bytes 132,927,294.00 bytes/sec
    total size is 199,307,568 speedup is 1.00

    登錄后復制

    rsync后,成功將數據文件夾移動到新位置。出于安全原因,我們將保留數據文件夾,直到確認數據位于新位置為止,我們會將當前數據目錄從 /var/lib/mysql 重命名為 /var/lib/mysql_backup 。下面是更改當前數據目錄的命令。

    下面是更改當前數據目錄的命令 –

    $ sudo mv /var/lib/mysql /var/lib/mysql_backup

    登錄后復制

    現在,我們將更改默認的數據目錄,要更改我們有很多方法,但我們將編輯位于 /etc/mysql/mysql.conf.d/mysqld.cnf 中的 mysqld.cnf 文件.

    編輯mysqld.cnf,命令如下

    $ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
    Output:
    [mysqld_safe]
    socket    = /var/run/mysqld/mysqld.sock
    nice      = 0
    [mysqld]
    #
    # * Basic Settings
    #
    user             = mysql
    pid-file         = /var/run/mysqld/mysqld.pid
    socket           = /var/run/mysqld/mysqld.sock
    port             = 3306
    basedir          = /usr
    datadir          = /mnt/data_vol/mysql/
    tmpdir           = /tmp
    lc-messages-dir = /usr/share/mysql
    skip-external-locking

    登錄后復制

    更改 Apparmor 別名設置

    此外,我們需要編輯 /etc/apparmor.d/tunables/alias

    在文件底部,我們需要添加別名規則中的以下行。

    $ sudo vi /etc/apparmor.d/tunables/alias
    Output:
    # ------------------------------------------------------------------
    #
    # Copyright (C) 2010 Canonical Ltd.
    #
    # This program is free software; you can redistribute it and/or
    # modify it under the terms of version 2 of the GNU General Public
    # License published by the Free Software Foundation.
    #
    # ------------------------------------------------------------------
    # Alias rules can be used to rewrite paths and are done after variable
    # resolution. For example, if '/usr' is on removable media:
    # alias /usr/ -> /mnt/usr/,
    #
    # Or if mysql databases are stored in /home:
    # alias /var/lib/mysql/ -> /home/mysql/,
    alias /var/lib/mysql/ -> /mnt/data_vol/mysql

    登錄后復制

    編輯文件后,我們需要重新啟動apparmor。

    以下是重新啟動apparmor的命令。

    由于我們更改了默認數據目錄,因此我們需要運行以下命令,該命令將創建最小目錄文件夾結構以傳遞腳本環境。

    $ sudo mkdir /var/lib/mysql/mysql –p

    現在我們將重新啟動mysql 服務。

    $ sudo systemctl start mysql

    登錄后復制

    現在我們將使用以下命令檢查 MySQL 服務的狀態

    $ sudo systemctl status mysql
    Output:
    mysql.service - MySQL Community Server
        Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
        Active: active (running) since Mon 2016-09-12 14:17:27 IST; 23s ago
       Process: 18481 ExecStartPost=/usr/share/mysql/mysql-systemd-start post (code=exited, status=0/SUCC
       Process: 18477 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCES
      Main PID: 18480 (mysqld)
         Tasks: 28 (limit: 512)
        Memory: 137.3M
       CPU: 329ms
    CGroup: /system.slice/mysql.service
            └─18480 /usr/sbin/mysqld
    Sep 12 14:17:26 ubuntu-16 systemd[1]: Starting MySQL Community Server...
    Sep 12 14:17:27 ubuntu-16 systemd[1]: Started MySQL Community Server.

    登錄后復制

    為了確保新的數據目錄已更改,我們將運行以下命令

    $ mysql -uroot -p
    Output:
    Enter password:
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 3
    Server version: 5.7.13-0ubuntu0.16.04.2 (Ubuntu)
    Copyright (c) 2000, 2016, 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> select @@datadir
    +----------------------+
    | @@datadir            |
    +----------------------+
    | /mnt/data_vol/mysql/ |
    +-----------------+
    1 row in set (0.00 sec)
    mysql>

    登錄后復制

    一旦我們確認數據目錄發生更改,我們將刪除默認的數據目錄,該目錄位于/var/lib/mysql_backup,下面是刪除舊數據庫目錄的命令。

    $ sudo rm –rf /var/lib/mysql_backup

    登錄后復制

    在上面的配置和步驟中,我們學會了將 MySQL 數據目錄重新定位到新位置,這將有助于我們保護或將更多數據存儲到不同的位置。

    以上就是如何在 Ubuntu 16.04 上將 MySQL 數據目錄更改為另一個位置的詳細內容,更多請關注www.92cms.cn其它相關文章!

分享到:
標簽:上將 位置 改為 數據 目錄
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定