- mysql -u root -p mysql # 第1个mysql是执行命令,第2个mysql是系统数据名称
在mysql控制台执行:
- grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
- # root是用户名,%代表任意主机,'123456'指定的登录密码(这个和本地的root密码可以设置不同的,互不影响)
- flush privileges; # 重载系统权限
- exit;
允许3306端口
- iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
- # 查看规则是否生效
- iptables -L -n # 或者: service iptables status
- # 此时生产环境是不安全的,远程管理之后应该关闭端口,删除之前添加的规则
- iptables -D INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
PS,上面iptables添加/删除规则都是临时的,如果需要重启后也生效,需要保存修改:
service iptables save # 或者: /etc/init.d/iptables save
另外,
vi /etc/sysconfig/iptables # 加上下面这行规则也是可以的
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
远程管理数据库的软件,win系统下可以使用SQLyog,用了几种远程软件,感觉这个用起来蛮不错的。
参考:
http://www.fantxi.com/blog/archives/enable-remote-access-mysql-centos/
以下的文章主要介绍的是实现远程连接的实际操作流程,本文主要是由其相关的实际应用代码来引出MySQL远程连接的具体操作步骤,以下就是文章的主要内容描述,希望会给你带来一些帮助在此方面。
1、进入MySQL,创建一个新用户root,密码为root:
格式:grant 权限 on 数据库名.表名 to 用户@登录主机 identified by "用户密码";
- grant select,update,insert,delete on *.* to root@192.168.1.12 identified by "root";
原先数据表结构
- MySQL> use MySQL;
- Database changed
- MySQL> select host,user,password from user;
- +-----------+------+-------------------------------------------+
- | host | user | password |
- +-----------+------+-------------------------------------------+
- | localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
- +-----------+------+-------------------------------------------+
执行上述语句后结果
- MySQL> use MySQL;
- Database changed
- MySQL> select host,user,password from user;
- +--------------+------+-------------------------------------------+
- | host | user | password |
- +--------------+------+-------------------------------------------+
- | localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
- | 192.168.1.12 | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
- +--------------+------+-------------------------------------------+
- 2 rows in set (0.00 sec)
可以看到在user表中已有刚才创建的root用户。host字段表示登录的主机,其值可以用IP,也可用主机名,
(1)有时想用本地IP登录,那么可以将以上的Host值改为自己的Ip即可。
2、实现MySQL远程连接(授权法)
将host字段的值改为%就表示在任何客户端机器上能以root用户登录到MySQL服务器,建议在开发时设为%。
- update user set host = ’%’ where user = ’root’;
将权限改为ALL PRIVILEGES
- MySQL> use MySQL;
- Database changed
- MySQL> grant all privileges on *.* to root@'%' identified by "root";
- Query OK, 0 rows affected (0.00 sec)
- MySQL> select host,user,password from user;
- +--------------+------+-------------------------------------------+
- | host | user | password |
- +--------------+------+-------------------------------------------+
- | localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
- | 192.168.1.12 | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
- | % | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
- +--------------+------+-------------------------------------------+
3 rows in set (0.00 sec)
这样机器就可以以用户名root密码root远程访问该机器上的MySQL.
3、实现MySQL远程连接(改表法)
- use MySQL;
- update user set host = '%' where user = 'root';
这样在远端就可以通过root用户访问MySQL.
参考:
阅读(2968) | 评论(0) | 转发(1) |