【问题标题】:Change tmpdir MariaDB on Linux not working在 Linux 上更改 tmpdir MariaDB 不起作用
【发布时间】:2021-11-18 12:14:52
【问题描述】:

我尝试更改 mariadb 的 tmpdir。我更改了变量 tmpdir 的值,但是当我重新启动 mariadb 时,tmpdir 始终是 /tmp。 这是我的配置文件。

[mysqld]

#
# * Basic Settings
#

user                    = mysql
pid-file                = /run/mysqld/mysqld.pid
basedir                 = /usr
datadir                 = /home/utente/utente/media/E_linux/dati
tmpdir                  = /home/utente/utente/media/E_linux/tmp
lc-messages-dir         = /usr/share/mysql
lc-messages             = en_US
skip-external-locking

当我重新启动 mysql 时出现错误:

mariadb.service - MariaDB 10.6.4 database server
     Loaded: loaded (/etc/systemd/system/mariadb.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/mariadb.service.d
             └─dontprotecthome.conf, migrated-from-my.cnf-settings.conf
     Active: failed (Result: exit-code) since Sat 2021-09-25 10:30:58 CEST; 3min 32s ago
       Docs: man:mariadbd(8)
             https://mariadb.com/kb/en/library/systemd/
    Process: 286590 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
    Process: 286591 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
    Process: 286593 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ]   && systemctl set-en>
    Process: 286644 ExecStart=/usr/sbin/mariadbd $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (code=exited, status=1/FAILURE)
   Main PID: 286644 (code=exited, status=1/FAILURE)
     Status: "MariaDB server is down"


set 25 10:30:58 WS-C621E-SAGE systemd[1]: Starting MariaDB 10.6.4 database server...
set 25 10:30:58 WS-C621E-SAGE mariadbd[286644]: 2021-09-25 10:30:58 0 [Note] /usr/sbin/mariadbd (server 10.6.4-MariaDB-1:10.6.4+maria~focal) starting as process 286644 ...
set 25 10:30:58 WS-C621E-SAGE mariadbd[286644]: 2021-09-25 10:30:58 0 [Warning] Can't create test file /home/utente/utente/media/E_linux/dati/WS-C621E-SAGE.lower-test
set 25 10:30:58 WS-C621E-SAGE mariadbd[286644]: [122B blob data]
set 25 10:30:58 WS-C621E-SAGE mariadbd[286644]: 2021-09-25 10:30:58 0 [ERROR] Aborting
set 25 10:30:58 WS-C621E-SAGE systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE
set 25 10:30:58 WS-C621E-SAGE systemd[1]: mariadb.service: Failed with result 'exit-code'.
set 25 10:30:58 WS-C621E-SAGE systemd[1]: Failed to start MariaDB 10.6.4 database server.
set 25 10:31:25 WS-C621E-SAGE systemd[1]: /etc/systemd/system/mariadb.service.d/dontprotecthome.conf:1: Assignment outside of section. Ignoring.

但是,mariadb 工作和 datadir 已更改,但 tmpdir 未更改。

【问题讨论】:

  • 我会在配置文件中查找设置此值的其他行。文件中设置 tmpdir 的最后一行优先。
  • 还可以尝试在配置文件中插入明显伪造的行并重新启动 mysqld。看看这是否会导致错误。如果没有,则 mysqld 没有读取该配置文件。

标签: mysql linux ubuntu mariadb tmp


【解决方案1】:

在服务器上运行这些命令。

chown -R mysql:mysql  /home/utente/utente/media/E_linux/dati/
chown -R mysql:mysql  /home/utente/utente/media/E_linux/tmp/

然后重启服务器上的 MySQL 服务。

systemctl restart mysql

【讨论】:

  • 我无法设置权限,因为它不是 unix 文件系统。但是mariadb写在/home/utente/utente/media/E_linux/dati文件夹...
  • 我能知道操作系统吗?
  • Ubuntu。路径 /home/utente/utente/media/E_linux 挂载在另一个磁盘上
  • @Maria 用于更改 msql 中的 tmp 目录。 MySQL 需要 tmp 目录上的所有权 (mysql:mysql)。所以请检查挂载服务 (NFS) NFS 应该是 rw
  • @Maria 你需要使用符号链接digitalocean.com/community/tutorials/…
猜你喜欢
  • 2017-11-18
  • 1970-01-01
  • 1970-01-01
  • 2017-07-18
  • 2017-04-15
  • 2019-05-14
  • 2012-10-06
  • 2017-11-25
  • 2013-03-22
相关资源
最近更新 更多