![无法远程访问 mariadb](https://linux22.com/image/744993/%E6%97%A0%E6%B3%95%E8%BF%9C%E7%A8%8B%E8%AE%BF%E9%97%AE%20mariadb.png)
我是 Linux 的新用户,我被授予了一台远程服务器来使用。我试图远程访问此服务器中的 mariadb 数据库。当我尝试时,出现了“连接被拒绝”错误。
pramod@debian:~$ mysql -h master -u root -p
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on 'master' (111 "Connection refused")
于是在网上查了一些资料,尝试了以下方法找到问题所在。我运行了 ps,得到了以下结果:
[pramod@master my.cnf.d]$ ps auxf | grep mysql
pramod 17612 0.0 0.0 112652 980 pts/2 S+ 10:49 0:00 \_ grep --color=auto mysql
mysql 13551 0.0 0.0 917228 97276 ? Sl 09:55 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/home/database/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --skip-grant-tables --skip-networking --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/home/database/mysql/mysql.sock
所以我认为 --skip-networking 在参数中(最后一行),我认为这应该是问题所在。所以我检查了我的 my.cnf 文件。它没有它。我在 /etc/ 文件夹中进行了搜索,如下所示:
[root@master my.cnf.d]# grep -rnw '/etc/' -e 'skip-networking'
没找到。然后我搜索了 skip_networking。结果如下:
[root@master my.cnf.d]# grep -rnw '/etc/' -e 'skip_networking'
/etc/akonadi/mysql-global-big.conf:88:skip_networking
/etc/akonadi/mysql-global.conf:88:skip_networking
/etc/akonadi/mysql-global-mobile.conf:88:skip_networking
现在我不知道是否应该处理这些文件。也许不应该。
还有什么我还可以尝试吗?
有人猜出问题可能出在哪里吗?我搜索的“skip-networking”行正确吗?
答案1
您需要首先授予用户远程访问数据库的权限,您可以从 mysql 提示符中执行此操作:
如果用户:root 被允许从网络范围 192.168.100.x/24 进行访问:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.100.%' IDENTIFIED BY 'my-new-password' WITH GRANT OPTION;
如果你想允许用户从任何网络连接,你可以用通配符替换“192.168.100.%”:%
此外,该命令还会为用户指定一个新密码。