Ubuntu下开启mysql/redis/kafka远程访问

做的项目刚开始是本地测试,现在需要远程连接mysql、redis、kafka,现记录一下mysql、redis、kafka允许远程连接的配置。

1.mysql开启远程访问

版本:mysql Ver 14.14 Distrib 5.7.23
出于安全方面考虑 MySql-Server 只允许本机(localhost,127.0.0.1)来连接访问. 这对于 应用程序与 MySql-Server 都在同一台服务器上的网站架构来说是没有问题的。
设置Ubuntu允许远程连接MySQL的方法为:

1)用root账户登录Mysql数据库(假设密码为123456);

mysql -uroot -p123456;

2)授权用户能进行远程连接

grant all on *.* to username@'%' identified by 'password';

注意:username是用户名,password是要自己填写的一个名字,“%”表示授权的用户IP可以指定,这里代表任意的IP地址都能访问MySQL数据库。例如:

grant all on *.* to test@'192.168.178.138' identified by '123456';
*.*:第一个*代表数据库名;第二个*代表表名。这里的意思是所有数据库里的所有表都授权给用户。  
test:授予账号名test。    
“192.168.178.138”:表示授权的用户IP为192.168.178.138,IP地址为192.168.178.138能访问MySQL数据库。    
“123456”:分配账号test对应的密码为123456。

3)刷新一下权限,执行:

flush privileges;

以上两步的运行图如下

mysql> grant all on *.* to test@'192.168.178.138' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> exit;

4)重启mysql

sudo /etc/init.d/mysql restart

然后IP地址为192.168.178.138的用户就可以通过账号/密码分别为test/123456进行远程访问mysql了。

2.redis开启远程访问

版本:redis-4.0.9
redis开启远程访问的方法为:
1)修改redis-4.0.9目录下的redis.conf
将bind 127.0.0.1 改为 bind 0.0.0.0
2)配置防火墙

iptables -A INPUT -p tcp -m tcp --dport 6379 -j ACCEPT

bind字段默认为: bind 127.0.0.1,这样只能本机访问redis,需要将bind 127.0.0.1 改为 bind 0.0.0.0,有的博客写直接将bind 127.0.0.1注释掉即可,我试过了,注释掉后远端用户可以远程连接redis,但是不能访问redis里的内容。
修改成bind 0.0.0.0后,如果远端用户还是不能访问redis数据库,出现Could not connect to Redis at xx.xx.xx.xx:6379: Operation timed out的错误提示,这时需要配置防火墙(redis数据库端配置)

3.kafka开启远程访问

版本:kafka_2.11-0.11.0.0
修改kafka的config/server.properties配置文件
将下边内容

#advertised.listeners=PLAINTEXT://your.host.name:9092

修改为

advertised.listeners=PLAINTEXT://192.168.178.141:9092

其中192.168.178.141是我kafka服务器的IP地址。

参考:
https://www.jianshu.com/p/61798dbcef58
https://www.jianshu.com/p/6ec65ebadb1c
https://blog.csdn.net/caoshangpa/article/details/79901648

你可能感兴趣的:(服务器相关)