[修]开启MySQL远程访问权限 允许远程连接

原文地址:http://www.cnblogs.com/XL-Liang/archive/2012/05/03/2481310.html

这个地址也许更有帮助:http://www.cppblog.com/zzg/archive/2009/05/29/86066.html (这里有很多关于数据库处理的技巧)

这么做,是新建了一个虚拟机,把数据库服务器放在虚拟机里面跑,然后通过虚拟机配置端口映射。一个电脑母机里面有很多子机的服务。这样有助于模拟与演示。

 

 

1、登陆mysql数据库    

   mysql -u root -p

   查看user表

mysql> use mysql;
Database changed
mysql> select host,user,password from user;
+--------------+------+-------------------------------------------+
| host         | user | password                                  |
+--------------+------+-------------------------------------------+
| localhost    | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
| 192.168.1.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
+--------------+------+-------------------------------------------+
2 rows in set (0.00 sec)

 

   可以看到在user表中已创建的root用户。host字段表示登录的主机,其值可以用IP,也可用主机名,

   (1)有时想用本地IP登录,那么可以将以上的Host值改为自己的Ip即可。

2、实现远程连接(授权法)

   将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 | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
| 192.168.1.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
| %            | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
+--------------+------+-------------------------------------------+
3 rows in set (0.00 sec)

这样机器就可以以用户名root密码root远程访问该机器上的MySql.

3、实现远程连接(改表法)

use mysql;

update user set host = '%' where user = 'root';

这样在远端就可以通过root用户访问Mysql.

 ##########################

别忘了,还要这么做,原文作者没写,现在补充上

sudo vi /etc/mysql/my.cnf

注释掉这句。注释掉的意思是不必叫mysqld 服务只能被本地呼唤,可以被链接到世界的网络上,这对源代码还有数据之间不在同一主机上比较有意义。
bind-address =127.0.0.1

 

######################

做完以后,要重新启动mysql服务

$~ sudo service mysql restart

××××××××××××××××××××××××××××××××××
既然都已经设置完数据库了,那么我们应该增加一些别的东西,远程连接数据库,才是我们想要的!
 
远程连接数据库
 

14:例2:连接到远程主机上的MYSQL

假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:

mysql -h110.110.110.110 -uroot -pabcd123                       // 远程登录

-h 远程数据库地址

-u 用户名

-p 密码

(注:u与root可以不用加空格,其它也一样)

 端口一般默认是3306
这里我们可以有更多的设置,具体要看/etc/mysql/my.cnf 的设置了。
 
这里还有一个简单的例子:mysql -u lzpddd -pmypassword -h 192.168.1.88 -P 3306 -D mydb
 
此前,有写过关于怎么操作mysql数据库的文章,还可以回忆一下。
 还有这一篇博客,
 
 
 
端口我先把/etc/mysql/my.cnf 里面的mysqld 的端口修改成了1234了,然后
 注意:虚拟机内部的IP一般是10.0.2.15 或者类似的,这个可以在虚拟机里面查看的。当然把IP写成静态的也好。(提示:可以去操作/etc/network/interfaces 修改静态还是自动获取. 个人觉得去做KVM, openVZ 等需要这么去做的原理也是如此 )
 
示例:
通过这种方式,就在本机上随意使用虚拟机里面的各种服务了
 
 
这样就可以用了,在本机上可以向虚拟机中输入数据了。good!
 
Happy Hacking!
posted @ 2013-12-12 14:41  spaceship9  阅读(373)  评论(0编辑  收藏  举报