为了允许 root 用户通过远程登录 MariaDB 服务器,您可以按照以下步骤进行操作:
1、确保 root 用户具有远程访问权限。
在 MariaDB 中,默认情况下 root 用户只能在本地访问。如果要允许 root 用户进行远程访问,则需要授予其在特定主机上的访问权限。可以使用以下命令授予 root 用户在所有主机上的访问权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
其中,your_password 是 root 用户的密码。注意,使用 GRANT ALL PRIVILEGES 命令授予 root 用户在所有数据库和表上的所有权限,这可能会存在安全风险,建议您按照最小化特权原则授权用户。
2、编辑 MariaDB 配置文件以允许远程连接。
默认情况下,MariaDB 服务器监听本地 IP 地址,因此您需要编辑配置文件以允许远程连接。可以使用以下命令打开 MariaDB 配置文件:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
在打开的文件中,找到 bind-address 行并将其注释掉或更改为服务器的 IP 地址:
#bind-address = 127.0.0.1
保存并关闭文件。
3、重启 MariaDB 服务器。
更改配置文件后,需要重启 MariaDB 服务器以使更改生效。可以使用以下命令重启 MariaDB 服务器:
sudo systemctl restart mariadb
现在,root 用户应该可以通过远程连接访问 MariaDB 服务器。请记住,授予 root 用户远程访问权限可能会存在安全风险,因此建议您采取适当的安全措施来保护您的数据库。
若是出现以下错误
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
1.在该文件/etc/mysql/mariadb.conf.d/50-server.cnf里MYSQLI部分增加
skip-grant-tables
2.重新启动mysql
service mysql restart
3.mysql -u root -p 遇见输入密码的提示直接回车即可
4.修改密码
use mysql;
update user set authentication_string=password("123456") where user="root";
flush privileges;
quit;
5.到50-server.cnf文件中把刚开始加的skip-grant-tables这条语句给注释掉
解决方法二:
我打开mysql所给的权限不够
sudo mysql -u root -p
密码就是sudo的密码