MySQL:远程登录

MySQL 5.5

如何登录:
本机下可以这样:
mysql -u <user-name> -p
回车后输入密码,也可以在-p参数跟上密码,个人不习惯。
远程就必须这样了:
mysql -h <ip address or host-name> -P <port> -D <db-name> -u <user-name> -p
像-P、-D选项可以省略。
在mysql的默认配置下,是无法远程登录root用户。

怎么解决:
建立一个可以远程登录的用户:
grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码";
例如允许任何主机远程使用admin账号登录mysql并进行各种操作:
grant all on *.* to admin@'%' identified by '123456';
flush privileges;
又例如只允许192.168.1.103的主机使用admin远程登录mysql:
grant all on *.* to [email protected] identified by '123456';
flush privileges;
不建议可以远程登录的用户权限太大。
也可以使得已有的用户可以被远程登录,例如root:
update user set host = '%' where user = 'root';
要想远程登录,只有这些是不够的,还要修改一下配置文件my.cnf:
找到:
bind-address = 127.0.0.1
将其注释,或者将ip改为mysql主机的可被其他主机访问到的ip。
另外,防火墙也可能需要修改。

用ssl让远程登录更放心:
见:
[Simplified MySQL SSL connections](http://www.mysqlfanboy.com/2011/11/simplified-mysql-ssl-connections/)
[6.3.6. Using SSL for Secure Connections](http://dev.mysql.com/doc/refman/5.0/en/ssl-connections.html)

按时备份数据库的思路:

不建议手动的远程登录mysql备份数据,然后再下载到某个备份硬盘中(其实远程登录本身也不是很建议去做)。
一个思路就是在mysql主机写一个按时运行的脚本(或者使用cron)备份数据,通过ftp或者其他方式将其下载下来。

一些资料:
MySQL的Grant命令:http://www.cnblogs.com/hcbin/archive/2010/04/23/1718379.html

你可能感兴趣的:(MySQL:远程登录)