开启mysql的远程连接的方法
web与mysql数据库分离开来是一个不错的选择,避免因为大量的数据库查询占用CPU而使web资源不足,
同时可以使web服务器的资源尽最大的提供浏览服务,而数据库服务器单独的只处理数据库事物。
A为web服务器(假设ip为:192.192.192.192)
B为mysql数据服务器(假设ip为:168.168.168.168)
着手动作:
1.在web服务器A配置好web服务。假设web服务器的IP为:192.192.192.192
2.在数据库服务器B安装好mysql服务。
3.现在新版的mysql一般默认都不允许远程连接的。需要建立远程连接账号才可以。
以命令行方式使用root账号进入mysql。
mysql -uroot -ppass
选择进入mysql数据库
use mysql ;
查看所有存在的账号和地址。
SELECT Host , User FROM user ;
比如我的就是:
+-----------+------+
| Host | User |
+-----------+------+
| localhost | |
| localhost | pma |
| localhost | root |
+-----------+------+
3 rows in set (0.00 sec)
也就是说,存在三个只允许本地连接的(localhost)账号,分别为 root、pma、空用户。
现在决定让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服务器网络内的局域网中就更好了。
示例
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.168.1.251', 'agent', PASSWORD( 'agent' ) , 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', '0', '0', '0');
其中 192.168.1.251 要连接的 Web服务器ip地址
用户名 和 密码 均为 agent