为了允许 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的密码


标签: none

添加新评论