如何配置MySQL/MariaDB数据库的远程访问?
默认情况下MySQL是只能本地访问。通过IP访问会报如下类似的错误。
2003, "Can't connect to MySQL server on '192.168.44.130' ([Errno 111] Connection refused)" can t connect to mysql server on xxx 10061
MariaDB的修改方式类似。
在Ubuntu 16.04中,查看/etc/mysql/my.cnf 中的
bind-address(早期版本)
或 查看 /etc/mysql/mysql.conf.d/mysqld.cnf 文件,注释掉 skip-external-locking 和 bind-address = 127.0.0.1
两个配置。如下所示:
user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp lc-messages-dir = /usr/share/mysql #skip-external-locking # # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. #bind-address = 127.0.0.1
重启MySQL服务。 service mysql restart
扫描二维码关注公众号,回复:
202688 查看本文章
(MariaDB配置文件: /etc/mysql/mariadb.conf.d/50-server.cnf)
添加远程访问用户和权限:
GRANT ALL ON testDB.* TO 'demo'@'192.168.44.130' IDENTIFIED BY 'demo' WITH GRANT OPTION;
flush privileges;
说明:
通过192.168.44.130远程地址访问MySQL server
用户名 demo 密码 demo,给该用户添加testDB数据库用所有表的全部权限(查询、删除、插入等),如果仅仅添加某些权限可以通过命令更新,如下只添加了查询和插入权限
GRANT SELECT, INSERT ON testDB.* TO 'demo'@'192.168.44.130';
添加完权限后,需要查看防火墙是否对3306端口开放。
最后,通过工具或程序即可链接远程MySQL服务器