以下是Linux环境下MariaDB的常见问题及解决方法:
服务无法启动
/etc/my.cnf或/etc/mysql/mariadb.conf.d/50-server.cnf)语法,确保bind-address、端口等参数正确。sudo systemctl status mariadb查看状态,通过journalctl -xe或/var/log/mysql/error.log排查错误日志。/var/lib/mysql)权限正确:sudo chown -R mysql:mysql /var/lib/mysql。sudo ufw allow 3306/tcp。无法远程连接
bind-address限制、用户权限不足或防火墙拦截。bind-address设为0.0.0.0,重启服务。CREATE USER 'user'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
忘记root密码
sudo mysqld_safe --skip-grant-tables &。UPDATE mysql.user SET Password = '新密码' WHERE User = 'root';
FLUSH PRIVILEGES;
用户权限不足
GRANT语句赋予用户对应权限,如SELECT、INSERT等,并刷新权限FLUSH PRIVILEGES。查询缓慢
slow_query_log=1,分析SHOW PROCESSLIST。innodb_buffer_pool_size(建议设为物理内存的50%-80%)。磁盘空间不足
PURGE BINARY LOGS BEFORE 'YYYY-MM-DD'。数据库损坏
CHECK TABLE和REPAIR TABLE修复表:CHECK TABLE table_name;
REPAIR TABLE table_name;
配置参数冲突
mysqlx-bind-address),删除或注释冲突项。mysql --help | grep "my.cnf"确认配置文件加载顺序,确保优先使用正确的配置。character-set-server=utf8mb4,并确保客户端连接使用相同字符集。SHOW SLAVE STATUS查看复制状态,修复主从同步延迟或错误。参考来源:[1,2,3,4,5,6,7,9,10,11]