Fedora 36启用systemctl服务后无法运行mysqld的问题
MariaDB mysqld启动失败问题解决
问题现象
无法运行mysqld,socket连接正常,但配置文件创建存在问题。不同用户执行mysqld时报错如下:
普通用户执行报错
joy@fedora /]$ mysqld 2022-11-12 12:38:24 0 [Note] mysqld (mysqld 10.5.16-MariaDB) starting as process 4650 ... 2022-11-12 12:38:24 0 [Warning] Can't create test file /var/lib/mysql/fedora.lower-test mysqld: Can't create file '/var/log/mariadb/mariadb.log' (errno: 13 "Permission denied") 2022-11-12 12:38:24 0 [ERROR] mysqld: File '/var/lib/mysql/aria_log_control' not found (Errcode: 13 "Permission denied") 2022-11-12 12:38:24 0 [ERROR] mysqld: Got error 'Can't open file' when trying to use aria control file '/var/lib/mysql/aria_log_control' 2022-11-12 12:38:24 0 [ERROR] Plugin 'Aria' init function returned error. 2022-11-12 12:38:24 0 [ERROR] Plugin 'Aria' registration as a STORAGE ENGINE failed. 2022-11-12 12:38:24 0 [ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable 2022-11-12 12:38:24 0 [ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable 2022-11-12 12:38:24 0 [ERROR] Plugin 'InnoDB' init function returned error. 2022-11-12 12:38:24 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 2022-11-12 12:38:24 0 [Note] Plugin 'FEEDBACK' is disabled. 2022-11-12 12:38:24 0 [ERROR] Could not open mysql.plugin table: "Table 'mysql.plugin' doesn't exist". Some plugins may be not loaded 2022-11-12 12:38:24 0 [ERROR] Failed to initialize plugins. 2022-11-12 12:38:24 0 [ERROR] Aborting
超级用户执行报错
[joy@fedora /]$ sudo mysqld 2022-11-12 12:41:13 0 [Note] mysqld (mysqld 10.5.16-MariaDB) starting as process 4679 ... mysqld: Please consult the Knowledge Base to find out how to run mysqld as root! 2022-11-12 12:41:13 0 [ERROR] Aborting
解决步骤
使用系统服务管理启动MariaDB
不要直接用普通用户或root运行mysqld,Linux发行版中MariaDB默认通过系统服务运行,自动切换到专用的mysql用户:sudo systemctl start mariadb修复权限问题
报错核心是普通用户无权限访问MariaDB的数据目录和日志目录,执行以下命令修正权限:sudo chown -R mysql:mysql /var/lib/mysql sudo chown -R mysql:mysql /var/log/mariadb sudo chmod 750 /var/lib/mysql sudo chmod 750 /var/log/mariadb初始化数据库(首次安装时需要)
如果是新安装未初始化数据库,执行初始化命令:sudo mysql_install_db --user=mysql --datadir=/var/lib/mysql设置开机自启(可选)
让MariaDB随系统启动:sudo systemctl enable mariadb
说明
MariaDB禁止root直接运行mysqld是出于安全考虑,专用的mysql用户拥有最小必要权限,避免权限过大带来的风险。
内容的提问来源于stack exchange,提问作者softwareplay
相关产品推荐
相关产品推荐

