zoukankan      html  css  js  c++  java
  • 在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;
  • 相关阅读:
    python检测服务器端口
    nodejs创建文件
    Git:代码冲突常见解决方法
    爬虫常用库介绍
    关于git提示“warning: LF will be replaced by CRLF”终极解答
    linux系统磁盘使用情况
    tkinter拦截关闭事件
    如何在python中调用C语言代码
    spring in action学习笔记十六:配置数据源的几种方式
    spring in action学习笔记十五:配置DispatcherServlet和ContextLoaderListener的几种方式。
  • 原文地址:https://www.cnblogs.com/zhongjicainiao/p/15090826.html
Copyright © 2011-2022 走看看