Debian MariaDB使用中常见问题
导读:Debian 上 MariaDB 的常见问题速查 一 安装与源问题 在 Debian 官方源中,常见的包名是 mariadb-server 或 default-mysql-server(实际安装 MariaDB)。若执行 apt 安装提示...
Debian 上 MariaDB 的常见问题速查
一 安装与源问题
- 在 Debian 官方源中,常见的包名是 mariadb-server 或 default-mysql-server(实际安装 MariaDB)。若执行 apt 安装提示:E: Package ‘mysql-server’ has no installation candidate,这是正常现象,改用上述包名即可。安装完成后执行 sudo mysql_secure_installation 完成初始化加固(设置 root 密码、删除匿名用户、禁止 root 远程登录、删除 test 库等)。若本机以 sudo mysql 可直接进入,说明 root 使用了 unix_socket 认证;如需密码登录,可后续改为密码认证方式。
二 登录失败与 root 认证
- 典型报错 ERROR 1698 (28000): Access denied for user ‘root’@‘localhost’ 或空密码无法登录,多因 root 采用 unix_socket 插件认证。排查与处理:
- 本机管理可继续用 sudo mysql 进入;
- 需要密码登录时,先以 sudo 进入 MariaDB,查看认证插件:
SELECT user, host, plugin FROM mysql.user WHERE user=‘root’; - 将 root 改为密码认证并设密:
ALTER USER ‘root’@‘localhost’ IDENTIFIED VIA mysql_native_password USING PASSWORD(‘你的强密码’);
FLUSH PRIVILEGES; - 之后即可用 mysql -u root -p 登录。为安全起见,生产环境建议创建业务管理员用户并限制 host(如仅 localhost 或内网网段)。
三 服务无法启动与系统一致性问题
- 报错 ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2) 或 systemd 状态显示 ExecStartPost=/etc/mysql/debian-start (code=exited, status=2),多与安装不完整或文件缺失有关。处理思路:
- 先查看服务状态与系统日志:
systemctl status mariadb;journalctl -xe 或 tail -f /var/log/syslog - 若缺失 /etc/mysql/debian-start 脚本,可从对应版本的 mariadb-server-*.deb 包中解压恢复:
apt download mariadb-server-< 版本>
dpkg-deb --extract mariadb-server-< 版本> .deb /tmp/mariadb
cp /tmp/mariadb/etc/debian-start /etc/mysql/
systemctl start mariadb - 再次检查状态与错误日志,确认启动成功。
- 先查看服务状态与系统日志:
四 远程连接与防火墙
- 远程连不通通常由以下原因导致:未开放 3306 端口、MariaDB 仅监听 127.0.0.1、未创建允许远程的主机用户、系统防火墙拦截。处理要点:
- 修改配置监听地址(按需):编辑 /etc/mysql/mariadb.conf.d/50-server.cnf,将 bind-address 设为 0.0.0.0(或注释掉该行以监听所有地址),保存后重启 MariaDB;
- 创建远程用户并授权(示例):
CREATE USER ‘admin’@‘%’ IDENTIFIED BY ‘强密码’;
GRANT ALL PRIVILEGES ON . TO ‘admin’@‘%’ WITH GRANT OPTION;
FLUSH PRIVILEGES; - 开放防火墙:如使用 ufw,可执行 sudo ufw allow 3306/tcp;若通过 Web 服务器代理访问,也可仅开放 80/443 并限制数据库端口仅内网访问。
五 常见配置与运维注意
- 表名大小写敏感:在 MariaDB 10.11+ 可通过设置 lower_case_table_names=1 实现表名不区分大小写。配置路径与生效方式:编辑 /etc/mysql/my.cnf(或 /etc/mysql/mariadb.conf.d/50-server.cnf)在 [mysqld] 段加入该参数,重启服务;注意 lower_case_file_system 为只读,表示底层文件系统是否大小写敏感。修改前务必评估现有对象命名与代码兼容性。
- 性能与安全基线:
- 内存关键参数:将 innodb_buffer_pool_size 设为物理内存的约 50%–75%(视负载与实例共存情况调整);
- 连接与会话:结合并发与资源,合理设置 max_connections、wait_timeout、interactive_timeout;
- 查询优化:启用并分析 slow_query_log,用 EXPLAIN 定位慢查询,建立合适索引,避免 SELECT *、减少临时表与文件排序;
- 安全加固:仅在内网开放数据库端口,使用最小权限账户,定期审计用户与权限,保持系统与数据库补丁更新。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian MariaDB使用中常见问题
本文地址: https://pptw.com/jishu/789747.html
