mysql,mariadb 啟動出現 Can't Create Test File錯誤

2021-01-10 2笑說編程

樹莓派系統安裝mariadb通過sudo apt install 安裝後,服務正常啟動,但默認的數據目錄是 /var/lib/mysql,所以修改數據目錄和日誌目錄,方便維護。

新的數據目錄:/home/mysql/data,新日誌目錄 /home/mysql/log

啟動服務時出現警告提示:

[Warning] Can't create test file /home/mysql/data/club-wilspark-rb.lower-test

一番搜索,在Mariadb官方網站發現了解決方案:

解釋一下:

1. 要保證數據目錄屬於服務的所有者,一般是mysql用戶

2. 保證數據目錄有「x」執行權限

3. 保證數據目錄的所有父級目錄對用戶、用戶組、以及其他均有「x」執行權限

4. 再就是檢查systemd、selinux還有apparmor了

前三條確定沒有問題後,根據第4條繼續追查發現問題所在:

默認的systemd管理單元 mariadb.service 中會有ProtectHome=true的配置,即數據目錄在/home下,通過systemctl或者Service啟動數據服務是無法啟動的,因為home目錄受保護了,所有編輯mariadb.service 中的ProtectHome修改為false後可以正常啟動。

【補充】需要重載配置單元,執行命令 systemctl daemon-reload

我的mariadb.service配置文件實際位置在(樹莓派系統上安裝的mariadb)

/lib/systemd/system/mariadb.service

相關焦點

  • Mysql(Mariadb)資料庫主從複製
    5.5.56;# yum install mariadb-server.x86_64 mariadb.x86_64 -y//設置mariadb服務# systemctl start mariadb.service && systemctl enable mariadb.service//設置mariadb資料庫root帳號的密碼
  • Centos7.9安裝Mariadb資料庫
    [root@localhost ~]# yum install mariadb-server 二、配置MariaDB 1、安裝完成後首先要把MariaDB服務開啟,並設置為開機啟動 [root@localhost ~]#
  • DTCC:MySQl核心代碼開發經驗揭示
    每一測試包含一個測試文件(test)和一個結果文件(result)。測試文件中可以使用SQL語句和mysQLtest指令。測試用例依照功能分為多個suite,main suite測試文件放在mysql-test/t,結果文件放在mysQL-test/r,其他的suite在mysQL-test/suite下,如:mysql-test/suite/rpl/{t,r}.
  • CentOS 7 安裝 MariaDB及基礎配置
    CentOS 7 安裝 MariaDB一、使用yum命令直接安裝[root@localhost ~]# yum install mariadb-server二、開啟服務[root@localhost ~]# systemctl start mariadb三、設置為開機自啟動服務[root@localhost
  • Windows安裝MariaDB-10.5.5資料庫
    my.ini fileCreation of the database was successful這個命令除了給我們初始化數據外,也給我們生成了ini配置文件,真香啊。然後通過mysql --install [服務名]的方式來註冊為服務E:\tool\mariadb-10.5.5\bin>mysqld --install MariaDB-10.5.5Service successfully installed.
  • Qt5如何備份mariaDB資料庫
    資料庫對比Mariadb是mysql的分支,所以說qt如何使用mysql,那麼就如何使用mariadb了。以前備份資料庫都是用資料庫管理軟體。那該如何在應用軟體中備份資料庫呢?這裡我是用資料庫自帶的命令:mysqldump.
  • SELinux 與 MySQL-愛可生
    00:01:00 mysqld也可以使用 ls -Z 查看 MySQL 數據目錄的 SELinux 的上下文:[root@redhat7 ~]# ls -dZ /var/lib/mysqldrwxr-x--x. mysql mysql system_u:object_r:mysqld_db_t:s0 /var/lib/mysql參數說明:system_u
  • python3.8操作(插入,刪除)mysql/MariaDB資料庫
    = mysql.connector.connect(host="localhost", # 資料庫主機地址user="root", # 資料庫用戶名passwd="root", # 資料庫密碼database="test1" #資料庫名)mycursor = mydb.cursor()a=0while True:time.sleep(1)try:# 查詢資料庫的表格table1mycursor.execute
  • mysql/mariadb資料庫在查詢結果中再次查詢篩選的操作方法
    今天是2020年4月9日,我跟大家分享一個二次操作mysql資料庫查詢結果的方法.我以資料庫 mariadb為例進行說明.因為它有個heidiSQL圖形管理工具,比較好操作.資料庫 mariadb為例進行說明.因為它有個heidiSQL圖形管理工具,比較好操作.
  • MySQL 數據校驗工具-愛可生|mysql|perl|伺服器|node01_網易訂閱
    這避免了以下場景:表在主伺服器上是空的,但在副本上非常大,並且在一個大型查詢中進行檢查,這會導致複製過程中出現非常長的延遲。  還有?些其他的保障措施。例如,pt-table-checksum 將它的會話級 innodb_lock_wait_timeout 設置為 1 秒,這樣,如果存在鎖等待,它將成為受害者,而不是導致其他查詢超時。
  • mysql查詢前一周的數據_mysql查詢當天的數據 - CSDN
    中獲取一天、一周、一月時間數據的各種sql語句寫法今天抽時間整理了一篇mysql中與天、周、月有關的時間數據的sql語句的各種寫法,部分是收集資料,全部手工整理,自己學習的同時,分享給大家,並首先默認創建一個表、插入2條數據,便於部分數據的測試,其中部分名詞或函數進行了解釋說明。
  • Blood test 'can check for more than 50 types of cancer' 驗血...
    Blood test 'can check for more than 50 types of cancer' 驗血 「可以檢測50多種癌症」
  • 如何向mysql導入數據
    一、導入.sql文件1.mysql命令導入數據基本語法:mysql -h伺服器地址 -u用戶名 -p 資料庫名< 要導入的資料庫文件路徑例:導入G:二、導入.csv/.txt文件1.load data 導入數據基本語法:load data [low_priority] [local] infile 'file_name
  • mysql昨天的日期時間函數 - CSDN
    mysql時間日期內置函數–非常方便用於查詢今天、昨天、上周,本月,上月,年度查詢等,但是千萬要監控mysql語句的性能,適當加索引優化一下查詢速度哦今天select * from 表名 where to_days(時間欄位名) = to_days(now());
  • MySQL 8.0 正式版 8.0.11 發布:比 MySQL 5.7 快 2 倍
    可靠性:InnoDB 現在支持表 DDL 的原子性,也就是 InnoDB 表上的 DDL 也可以實現事務完整性,要麼失敗回滾,要麼成功提交,不至於出現 DDL 時部分成功的問題,此外還支持 crash-safe 特性,元數據存儲在單個事務數據字典中。10.
  • MySQL 8.0 正式版 8.0.11 發布:比 MySQL 5.7 快 2 倍 - OS...
    可靠性:InnoDB 現在支持表 DDL 的原子性,也就是 InnoDB 表上的 DDL 也可以實現事務完整性,要麼失敗回滾,要麼成功提交,不至於出現 DDL 時部分成功的問題,此外還支持 crash-safe 特性,元數據存儲在單個事務數據字典中。10.