配置Mysql允许远程访问

这件事情很不直观。我尝试说得好理解一点。

通常,mysql服务器安装在服务器上面。
你可能会有需求,特别是在开发阶段,你想直接通过自己的开发机器上面的客户端工具(如命令行mysql、Mac上的Sequel Pro、Windows的SQLyog等)进行访问,或者直接在开发机器上面跑代码访问数据库,这时候你发现并不能如愿,因为默认服务器上面的数据库服务器只允许本机访问。
你只能先远程登录服务器,再对Mysql进行访问。

下面我将介绍,如何配置数据库让我们直接在自己机器上访问。两件事情

  1. 确保服务器上面的防火墙没有挡住3306端口(Mysql默认使用3306端口)
  2. 在mysql中加入一个新的用户,给新用户访问权限设置为全局。

因为我的服务器没有设置防火墙去挡住3306端口,所以第一步我跳过了,直接进行第二步:

首先,你需要登录到服务器

ssh user_name@yourserver 

user_name 替换成你的服务器用户名(比如root),yourserver替换成你的服务器IP地址,回车后输入密码即完成登录服务器
然后,在服务器上登录mysql

[root@yourserver]# mysql -u root -h localhost -p

登录成功后,会是这样子

mysql> 

在mysql中有一个叫mysql的数据库中有一个user表,用于设置用户及访问权限的,可以通过下面的语句查询相关信息。

mysql> use mysql;
mysql> select * from user;

下面我们用一个语句,往user表中加入一条我们想要的数据,来让我们实现远程访问

mysql> GRANT ALL ON database_name.* TO databaseuser@'ip_address' IDENTIFIED BY 'password';

其中:

  • database_name 你要访问的数据库名称
  • databaseuser 新的数据库用户
  • password 设置新的密码(mysql将会对你的设置进行加密再到user表中)
  • ip_address 你本机的IP地址(使用%可以让所有的IP都可以访问)

将这几个字符串替换后,形成你自己的语句,执行。看看你的user表中是不是多了一条记录?

接下来你就可以用数据库客户端工具测试一下了,That’s all。

参考链接:
http://hubeihuyanwei.blog.163.com/blog/static/282052842011380210368/

https://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html

你可能感兴趣的:(配置Mysql允许远程访问)