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

通常,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


via.http://www.jianshu.com/p/51d3870a55bf

 
 
--------------------------
 
开启MySQL远程访问权限 允许远程连接

1、登录服务器,然后运行命令:mysql -u root –p   ,然后输入密码,该步骤是进入数据库。

2、mysql>use mysql;

3、授权:

例如想root使用123456从任何主机连接到mysql服务器: 
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

如果想允许用户abc从ip为10.10.50.127的主机连接到mysql服务器,并使用654321作为密码:
mysql>GRANT ALL PRIVILEGES ON *.* TO 'abc'@'10.10.50.127' IDENTIFIED BY '654321' WITH GRANT OPTION;

4、刷新权限: mysql>FLUSH PRIVILEGES;

via.https://www.niaoyun.com/help/server/382.html