首先用服务器IP开通一个用户
让MYSQL服务支持远程连接(允许mysql远程登录)测试可行
一般来说远程连接MYSQL数据库,除非两台服务器在同个机房的局域网内,不然访问速度肯定很慢,性价比不高,除非为了远程维护方便,不然一般不会有人这么设置,这里简单谈谈如何在WIN系统下设置MYSQL的远程链接,至于UNIX类系统的MYSQL远程链接,可以参考http://www.bnxb.com/design/mysql/2010/01212310.html
另外说明一下,很多人按下面的方法配置后仍然不能远程链接到MYSQL,其实是因为从MYSQL5以后,MYSQL为了安全,又多加了一重防护,只要修改MYSQL文件夹下的MYSQL配置文件MY.INI,直接把bind-address = 127.0.0.1 这行注释掉或者删除掉就绝对可以远程链接了。
从“命令提示符”进入mysql
如果MYSQL安装在E盘
那就输入
e:
cd mysql(mysql的安装目录)
cd bin
mysql -uroot -p88888
root是用户名 88888是你自己的密码
要先一步一步到 bin目录下再执行登录。
你的如果安装在C盘,那第一步可以输入 cd/ 就直接回到c:盘了
bnxb.com
解决方法(转):经起源网测试,执行第一种办法时出现错误,第二种办法成功,具体原因未知 起源网bnxb.com
1。改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电 脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
mysql -u root -pvmwaremysql>use mysql;mysql>update user set host = '%' where user = 'root';mysql>select host, user from user; 内容来自bnxb.com
2. 授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION www.bnxb.com
如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION
详细实例:在安装mysql的机器上运行:
1、d:/mysql/bin/>mysql -h localhost -u root
//这样应该可以进入MySQL服务器
2、mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION
//赋予任何主机访问数据的权限
3、mysql>FLUSH PRIVILEGES
//修改生效
4、mysql>EXIT
3.使用PHPMYADMIN修改
在phpmyadmin中使用ROOT权限用户登录(也就是MYSQL的管理员账号,一般默认是root)点击权限以后,进 入如下界面
点击任意root用户后面的编辑按钮,在接下来的页面中更改下图区域中的各文本框的值
在用户名中输入你要在远程计算机中使用的数据库用户名,主机后面选择使用文本域,后面的文本框中输入要连接数据库的远程计算机的ip地址,密码中输 入访问数据库的密码,在下面表格的单选框中选择保留旧用户,然后执行即可
这样在上面指定ip的远程计算机就可以通过上面设置的用户名及密码访问数据库了
MySQL数据库服务器支持远程连接的设置方法
机连接上数据库服务器,如果想让用户通过另外一台机器连接上数据库服务器必须手动进行修改:
1、在控制台执行 mysql -u root -p mysql,系统提示输入数据库root用户的密码,输入完成后即进入mysql控制台,这个命令的第一个mysql是执行命令,第二个mysql是系统数据名称,不一样的。
2、在mysql控制台执行 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MyPassword' WITH GRANT OPTION;
3、在mysql控制台执行命令中的 'root'@'%' 可以这样理解: root是用户名,%是主机名或IP地址,这里的%代表任意主机或IP地址,你也可替换成任意其它用户名或指定唯一的IP地址;'MyPassword'是给授权用户指定的登录数据库的密码;另外需要说明一点的是我这里的都是授权所有权限,可以指定部分权限,GRANT具体操作详情见:http://dev.mysql.com/doc/refman/5.1/en/grant.html
4、不放心的话可以在mysql控制台执行 select host, user from user; 检查一下用户表里的内容,我的检查如下图所示:
请问如何开启MySQL的远程连接
Q & A:
服务器信息
PHP程式版本: 4.3.11
MySQL 版本: 4.1.10-nt
服务器端信息: Microsoft-IIS/5.0
装有phpMyAdmin
1. 进入MySQL,创建一个新用户xuys:
grant select,update,insert,delete on *.* to xuys@192.168.88.234 identified by "xuys1234";
use mysql;
select host,user,password from user;
2.
./mysqladmin -u root -p pwd shutdown
3.
如果经过以上3个步骤还是无法从客户端连接,请执行以下操作,在MySQL数据库的db表中插入一条记录:
insert into db values('192.168.88.234','%','xuys','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
update db set host = '%' where user = 'xuys';
我对这方面的原理不甚太十分了解,我的做法其实就是下面要说的,很简单.大家有更好的经验和技巧不妨提出来分享一下.
适用范围: 拥有独立主机权限
硬件配置: 两台服务器,至于具体服务器硬件配置就不在本文范围内了
其中: A为Web服务器(假设IP为: 192.192.192.192),B为MySQL数据服务器(假设IP为: 168.168.168.168)
着手动作:
2. 在数据库服务器B安装好MySQL服务
3. 现在新版的MySQL一般默认都不允许远程连接的,需要建立远程连接账号才可以
mysql -u root -p pass
选择进入MySQL数据库
use mysql;
查看所有存在的账号和地址
SELECT `Host`,`User` FROM `user`;
比如我的就是:
+------------+-------+
| Host | User |
+------------+-------+
| localhost | |
| localhost | pma |
| localhost | root |
+------------+-------+
3 rows in set (0.00 sec)
现在决定让root具有上面那个Web服务器A的远程链接的权限,那么就这样:
UPDATE `user` SET `Host` = '192.192.192.192' WHERE `User` = 'root' LIMIT 1;
这样192.192.192.192这台Web服务器就可以远程连接到这个数据库服务器了,假如你想让任何远程机器都可以连接这个数据库,就将192.192.192.192换为%,不过不建议这样做,原因你知道啦!
假如你想新建一个用户new_user具备远程链接的权限的话,就这样:
INSERT INTO `user` ( `Host` , `User` , `Password` , `Select_priv` , `Insert_priv` , `Update_priv` , `Delete_priv` , `Create_priv` , `Drop_priv` , `Reload_priv` , `Shutdown_priv` , `Process_priv` , `File_priv` , `Grant_priv` , `References_priv` , `Index_priv` , `Alter_priv` , `Show_db_priv` , `Super_priv` , `Create_tmp_table_priv` , `Lock_tables_priv` , `Execute_priv` , `Repl_slave_priv` , `Repl_client_priv` , `ssl_type` , `ssl_cipher` , `x509_issuer` , `x509_subject` , `max_questions` , `max_updates` , `max_connections` ) VALUES ('192.192.192.192', 'new_user', PASSWORD( 'new_user_password' ) , 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', '0', '0', '0');
将new_user改为你想要的名字就可以了,密码是: new_user_password,当然你可以随意设置.
当你的数据库可以远程连接后,你就可以在你的Web服务器的论坛config.inc.php中设置$dbhost变量为你的MySQL数据库服务器B的IP了:
实际操作中,最好两台机器在同一个机房的同一网段/防火墙内.当然如果有可能的话,将数据库服务器放置于Web服务器网络内的局域网中就更好了.
flush privileges; //使权限立刻生效