在CentOS中修改mariadb數據庫存儲位置

             MariaDB數據庫通過rpm安裝包安裝後,數據直接默認存在/root下,但是默認情況此處空間都不大,很容易就被佔滿

[root@localhost mysql]# df -H
文件系統                 容量  已用  可用 已用% 掛載點
/dev/mapper/centos-root   54G   54G   37k  100% /                       -- 此次佔滿後就再也存不進去數據了
devtmpfs                  34G     0   34G    0% /dev
tmpfs                     34G   87k   34G    1% /dev/shm
tmpfs                     34G  908M   33G    3% /run
tmpfs                     34G     0   34G    0% /sys/fs/cgroup
/dev/sda2                521M  161M  361M   31% /boot
/dev/sda1                210M  9.9M  200M    5% /boot/efi
/dev/mapper/centos-home  1.8T   39M  1.8T    1% /home
tmpfs                    6.8G   17k  6.8G    1% /run/user/42
tmpfs                    6.8G     0  6.8G    0% /run/user/0

          接下來就想的把數據存在/home下面,首先把數據庫服務給停了,然後拷貝數據存儲文件夾

[root@localhost home]# cp -rp /var/lib/mysql /home/mysql               // 拷貝
[root@localhost home]# ll
總用量 8
drwx------. 15 admin admin 4096 6月  28 2020 admin
drwxr-xr-x.  5 mysql mysql 4096 8月   2 10:54 mysql
[root@localhost home]# cd mysql
[root@localhost mysql]# ll
總用量 116780
-rw-rw----. 1 mysql mysql    16384 8月   2 09:33 aria_log.00000001
-rw-rw----. 1 mysql mysql       52 8月   2 09:33 aria_log_control
-rw-rw----. 1 mysql mysql      913 8月   2 09:33 ib_buffer_pool
-rw-rw----. 1 mysql mysql 18874368 8月   2 09:33 ibdata1
-rw-rw----. 1 mysql mysql 50331648 8月   2 09:33 ib_logfile0
-rw-rw----. 1 mysql mysql 50331648 8月   2 09:29 ib_logfile1
-rw-rw----. 1 mysql mysql        0 8月   2 09:29 multi-master.info
drwx------. 2 mysql mysql     4096 3月  24 09:52 mysql
-rw-rw----. 1 mysql mysql     1593 7月  26 10:37 mysql-bin.000001
-rw-rw----. 1 mysql mysql     1040 8月   2 09:11 mysql-bin.000002
-rw-rw----. 1 mysql mysql       38 7月  26 10:38 mysql-bin.index
drwx------. 2 mysql mysql     4096 3月  24 09:52 performance_schema
drwx------. 2 mysql mysql       28 7月  26 10:35 test

            拷貝完成後,修改數據庫配置文件:

[root@localhost mysql]# cd /etc/my.cnf.d
[root@localhost my.cnf.d]# ls
enable_encryption.preset  mysql-clients.cnf  server.cnf
[root@localhost my.cnf.d]# vi server.cnf

  [mysqld]
  datadir=/home/mysql

 

     保存修改後,嘗試重啓數據庫服務,結果報錯了:

[root@localhost mysql]# systemctl start mariadb
Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details.
[root@localhost mysql]# systemctl status mariadb
● mariadb.service - MariaDB 10.2.39 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/mariadb.service.d
           └─migrated-from-my.cnf-settings.conf
   Active: failed (Result: exit-code) since 一 2021-08-02 11:09:58 CST; 12s ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
  Process: 32723 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS --basedir=/usr $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (code=exited, status=1/FAILURE)
  Process: 32705 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ]   && systemctl set-environment _WSREP_START_POSITION=$VAR || exit 1 (code=exited, status=0/SUCCESS)
  Process: 32699 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
 Main PID: 32723 (code=exited, status=1/FAILURE)
   Status: "MariaDB server is down"

8月 02 11:09:57 localhost.localdomain systemd[1]: Starting MariaDB 10.2.39 database server...
8月 02 11:09:58 localhost.localdomain mysqld[32723]: 2021-08-02 11:09:58 140668166133888 [Note] /usr/sbin/mysqld (mysqld 10.2.39-MariaDB) starting as process 32723 ...
8月 02 11:09:58 localhost.localdomain mysqld[32723]: 2021-08-02 11:09:58 140668166133888 [Warning] Can't create test file /home/mysql/localhost.lower-test
8月 02 11:09:58 localhost.localdomain mysqld[32723]: [87B blob data]
8月 02 11:09:58 localhost.localdomain mysqld[32723]: 2021-08-02 11:09:58 140668166133888 [ERROR] Aborting
8月 02 11:09:58 localhost.localdomain systemd[1]: mariadb.service: main process exited, code=exited, status=1/FAILURE
8月 02 11:09:58 localhost.localdomain systemd[1]: Failed to start MariaDB 10.2.39 database server.
8月 02 11:09:58 localhost.localdomain systemd[1]: Unit mariadb.service entered failed state.
8月 02 11:09:58 localhost.localdomain systemd[1]: mariadb.service failed.

        根據“Can't create test file /home/mysql/localhost.lower-test”報錯信息,度娘了下修改

[root@localhost mysql]# vi /usr/lib/systemd/system/mariadb.service

    找到 ProtectHome=true

    改爲:

    ProtectHome=false

      保存後,再執行相關命令:

[root@localhost mysql]# systemctl daemon-reload
[root@localhost mysql]# systemctl start mariadb
Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details.
[root@localhost mysql]# systemctl status mairadb
● mairadb.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)
[root@localhost mysql]# systemctl status mariadb
● mariadb.service - MariaDB 10.2.39 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/mariadb.service.d
           └─migrated-from-my.cnf-settings.conf
   Active: failed (Result: exit-code) since 一 2021-08-02 11:29:58 CST; 36s ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
  Process: 33332 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS --basedir=/usr $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (code=exited, status=1/FAILURE)
  Process: 33314 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ]   && systemctl set-environment _WSREP_START_POSITION=$VAR || exit 1 (code=exited, status=0/SUCCESS)
  Process: 33309 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
 Main PID: 33332 (code=exited, status=1/FAILURE)
   Status: "MariaDB server is down"

8月 02 11:29:58 localhost.localdomain mysqld[33332]: 2021-08-02 11:29:58 140384851544192 [ERROR] Plugin 'Aria' registration as a STORAGE ENGINE failed.
8月 02 11:29:58 localhost.localdomain mysqld[33332]: 2021-08-02 11:29:58 140384851544192 [Note] Plugin 'FEEDBACK' is disabled.
8月 02 11:29:58 localhost.localdomain mysqld[33332]: 2021-08-02 11:29:58 140384851544192 [ERROR] Could not open mysql.plugin table. Some plugins may be not loaded
8月 02 11:29:58 localhost.localdomain mysqld[33332]: 2021-08-02 11:29:58 140384851544192 [ERROR] Unknown/unsupported storage engine: InnoDB
8月 02 11:29:58 localhost.localdomain mysqld[33332]: 2021-08-02 11:29:58 140384851544192 [ERROR] Aborting
8月 02 11:29:58 localhost.localdomain mysqld[33332]: Warning: Memory not freed: 520
8月 02 11:29:58 localhost.localdomain systemd[1]: mariadb.service: main process exited, code=exited, status=1/FAILURE
8月 02 11:29:58 localhost.localdomain systemd[1]: Failed to start MariaDB 10.2.39 database server.
8月 02 11:29:58 localhost.localdomain systemd[1]: Unit mariadb.service entered failed state.
8月 02 11:29:58 localhost.localdomain systemd[1]: mariadb.service failed.

      修改setenforce狀態,臨時值是 0或者直接禁用後再試試,成功了

[root@localhost mysql]# setenforce 0
[root@localhost mysql]# systemctl start mariadb
[root@localhost mysql]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 10.2.39-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章