使用场景:当需要外部远程访问mysql数据库时,如windows中访问ubuntu中的mysql数据库。
方法跟简单,只需要按照以下操作逐步实行即可。
注意mysql配置文件路径可能不同。
一、远程连接MySQL设置
1. 修改表设置
- 登录mysql:
mysql -uroot -p
use mysql;
- 给root用户添加远程访问允许:
update user set host = '%' where user = 'root';
2. 修改配置文件
- 修改mysql配置文件:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
- 修改bind-address字段绑定为本机ip,例:
bind-address = 192.168.94.128
- 重启mysql:
sudo service mysql restart
3. 在另一台主机中远程访问mysql
-
mysql -uroot -p -h 192.168.94.128
我在window中访问我的ubuntu数据库成功:
4. MySQL授权
如果发现无法连接,则需要在远程MySQL内授权远端访问指定数据库,具体授权方式:
- 在MySQL端登陆进入MySQL内;
- 使用命令1:
grant all privileges on datanase_name.* to 'root' @ '192.168.94.168' identified by 'root' with grant option;
- 其含义是:授权给192.168.94.168下的root用户,允许其访问当前主机root用户的database_name数据库下的所有数据表。.*代表该数据库下的所有表;
- 使用命令2:
flush privileges;
刷新授权使其生效; - 然后重试第三步。
二、远程连接Redis设置
Redis远程连接的配置与mysql差不多,而且更简单。
- 修改配置文件:
sudo vim /etc/redis/redis.conf
,
修改bind-address为本机ip,如:bind-address = 192.168.94.128
- 重启redis:
sudo service redis-server restart
- 在外部连接到redis:
redis-cli -h 192.168.94.128