阿里云开放mysql远程连接的一点问题

安全起见,首先为远程连接提供一个数据库。

CREATE DATABASE test DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;  

目前为止,mysql默认的编码几乎注定了插入中文会出现乱码,不得不在新建一个数据库的时候 SET utf8 COLLATE utf8generalci

然后,新建一个远程用户

CREATE USER test@'%' IDENTIFIED BY '123456';  

标准格式:CREATE USER 用户名@'允许连接的ip地址' IDENTIFIED BY '密码'。 其中,%代表允许所有地址连接。

然后给新用户授权

 GRANT ALL ON test.* TO 'test'@'%’;

标准格式: GRANT 权限 ON 数据库名称.表名 TO '用户'@'允许连接的地址’;

目前为止,我们已经有了一个可以远程连接操作mysql的用户。但是mysql的默认是服务绑定在localhost上,我们必须去修改一下。在Ubuntu下面,这个默认配置文件是/etc/mysql/my.cnf。

vim /etc/mysql/my.cnf  

去把bind-address那一行注释掉,虽然理论上改成bind-address= 0.0.0.0就可以了,但是保险起见,还是注释掉比较好

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.
#===king setting allow remote===
# bind-address        = 0.0.0.0
#
# * Fine Tuning
#
key_buffer        = 16M  
max_allowed_packet    = 16M  
thread_stack        = 192K  
thread_cache_size       = 8  

接下来就是防火墙的问题了,Ubuntu下面的端口访问是被ufw管理的。具体教程在下面两个链接:

http://wiki.ubuntu.org.cn/Ufw%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97

http://www.cnblogs.com/ylan2009/articles/2321136.html

我自己是卡在这儿一个星期,妈的,每次连接都是60错误……莫名其妙。后来先重启了一下ufw就莫名其妙好了╮(╯▽╰)╭并没有添加任何特例之类的_(:зゝ∠).不过ufw一般状态下是不被激活的,一旦激活就会影响正常主机的远程登陆,必须还要开启一下22端口。

至于远程连接的客户端,可以用mysql官方可视化的workbench,也可以用命令行

mysql -h 111.1.1.1 -P 3306 -u test -p123456  

标准格式:mysql -h ip地址 -P 端口号 -u 用户名 -p密码

别忘了密码和-p是紧跟着的(:зゝ∠)

刘摸鱼

退堂鼓表演艺术家

杭州