安装MariaDB后遇权限错误、变量问题及RPI 4B数据传输失败求助
问题解决步骤
1. 用户'roor'@'localhost'访问被拒绝
- 先确认用户名是否拼写错误:报错里的'roor'大概率是'root'的笔误;如果确实是自定义用户'roor',需要先创建该用户并授权。
- 若是root用户权限问题,按以下流程重置密码:
- 停止MariaDB服务:
sudo systemctl stop mariadb - 跳过权限验证启动服务:
sudo mysqld_safe --skip-grant-tables & - 无密码登录MariaDB:
mysql -u root - 切换至mysql系统库:
use mysql; - 更新root密码(根据MariaDB版本选择):
- MariaDB 10.4及以上:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_new_password'; - 旧版本:
UPDATE user SET password=PASSWORD('your_new_password') WHERE User='root' AND Host='localhost';
- MariaDB 10.4及以上:
- 刷新权限:
FLUSH PRIVILEGES; - 重启服务:
sudo systemctl restart mariadb
- 停止MariaDB服务:
2. mysql: unknown variable 'bind-address= 127.0.0.1'
- 错误核心原因:
bind-address是**服务器端(mysqld)**的配置参数,不属于客户端(mysql)配置;另外参数值前的空格也会导致识别失败。 - 解决流程:
- 如果你是运行
mysql客户端时添加了该参数,直接移除即可。 - 若是服务器启动报错,编辑服务器配置文件(通常路径为
/etc/mysql/mariadb.conf.d/50-server.cnf):- 找到
[mysqld]配置段,确保bind-address参数在此段下,而非[mysql]段。 - 修正参数格式:将
bind-address= 127.0.0.1改为bind-address=127.0.0.1(去掉等号后的空格)。
- 找到
- 重启MariaDB服务:
sudo systemctl restart mariadb
- 如果你是运行
3. RPI 4B向本地主机传输数据失败
- 问题通常涉及网络连通性、MariaDB远程权限、防火墙三个维度,按以下步骤排查:
- 基础网络验证:确认RPI 4B与本地主机在同一局域网,互相能ping通对方IP。
- 配置MariaDB允许远程访问:
- 登录本地主机的MariaDB:
mysql -u root -p - 授权指定IP访问(示例为允许root从RPI的IP访问所有库):
GRANT ALL PRIVILEGES ON *.* TO 'root'@'你的RPI_IP' IDENTIFIED BY 'your_password'; - 临时测试可允许所有IP访问(注意安全风险):
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password'; - 刷新权限:
FLUSH PRIVILEGES;
- 登录本地主机的MariaDB:
- 调整MariaDB绑定地址:
- 编辑服务器配置文件,将
bind-address=127.0.0.1改为bind-address=0.0.0.0(允许所有IP访问服务器)。 - 重启服务:
sudo systemctl restart mariadb
- 编辑服务器配置文件,将
- 防火墙配置:
- 本地主机开放3306端口:
sudo ufw allow 3306 - 测试阶段可临时关闭防火墙验证:
sudo ufw disable(测试完成后建议重新开启)
- 本地主机开放3306端口:
- 在RPI 4B上测试连接:
mysql -u root -p -h 本地主机IP,能成功登录则权限与网络配置正常。
内容的提问来源于stack exchange,提问作者Asma
相关产品推荐
相关产品推荐

