首先确定已经安装并且能够使用,而且数据库的远程访问已开启;
如果对方不是固定的IP,则可以使用花生壳来充当固定的IP,花生壳的安装,及具体的使用方法,请参考另一篇经验 《申请一个免费域名及远程桌面》;
接下来便是访问了
首先在运行输入 cmd
这样便打开了命令提示符,如下:
打开了之后在此输入 mysql -h你的IP或者花生壳的账户 -uroot -p该数据库的密码
例如:mysql -h301585978 -uroot -pabc123
mysql -htomxicpnet -uroot -pabc123
完成
1,确认你的linux主机是否能够连接你的win7主机,可用ping命令或者telnet命令
ping 1921681139或者telent 1921681139 3306
2,如果你的linux主机与你的win7主机路由是通的,在你的win7的控制面板上打开防火墙设置,确认你的3306端口没有被防火墙屏蔽。
3,如果以上都没有问题,请检查你的mysql数据库是否设置了连接权限:
GRANT ALL PRIVILEGES ON TO 'root'@'%' IDENTIFIED BY '11112222' WITH GRANT OPTION;
是授权jack用户密码是123456在IP地址101050127的地址登陆,也可以用通配符%代替IP表示任何地址。
试图建立到运行host的一个MySQL数据库引擎的一个连接。其函数原形为:
MYSQL mysql_real_connect(MYSQL mysql, const char host, const char user, const char passwd, const char db, unsigned int port, const char unix_socket, unsigned int client_flag)
我要编一段程序用来远程连接一个mysql数据库。我在数据库的本机上做试验,发现mysql_real_connect()的第二个参数设为"localhost"时可以正常连接,当改写为该机器的IP地址"1921681002"时就连接失败。我在程序中写的原句为:
mysql_real_connect(mysql,"1921681002","root","","mydns",0,NULL,0)。
最初,我以为将"localhost"改为"1921681002"之后要将第六个参数端口号写上,但还是不行。由于我是在Linux上做的,所以想也许需要将第七个参数unix_socket写上,结果还是不行。于是到google找解决方法,发现要远程连接mysql需要为mysql的指定帐号设置远程连接的权限。在我的程序中,就要为root设置这一权限。事实证明,我之前连接失败正是由于这个原因导致的。但问题是,网上被广泛转贴的方法是错误的,我照做后还不行,最后问了同学才解决的。下面我具体说一下,望大家不会再被误导。
在mysql数据库中有一个mysql库,它里面包含一个user表,里面存有所有帐号及它们的权限及特征。对应我的user表中找到User项为root的,发现有两项,其Host项分别为localhost和localhostlocaldomain。我们只需要把'localhost'改为'%'就可以让所有远程机器以root帐号登陆mysql服务器。也可以将'localhost'改为某一个ip地址,这样就可以在该地址的机器上登陆mysql服务器。这些都没有问题,只是网上被广为传颂的一个更改Host项的方法是错误的。他的方法是用update语句将指定User项的Host项改过来,如果想添加一个新的用于远程访问的帐号,就用insert语句添加。事实是这根本不行,我按照作了,表是变了,但还是连不上。后来经过询问才知道,要想改,结合我的情况,必须用下面的这条语句:
grant all privileges on mydns to'root'@'%';来改变root帐号的权限。如果添加新帐号也是如此。想必这个表比较特殊,用普通的SQL语句不能 *** 作。如果帐号有密码,后面再加上identified by ''(为你帐号的密码)就可以了。
为了解决这个问题用了一下午的时间,费了不少周折,写出来也能让大家少走些弯路。
以上就是关于如何连接远程Mysql数据库全部的内容,包括:如何连接远程Mysql数据库、怎样连接远程mysql数据库、关于如何用mysql_real_connect()连接远程数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)