MySQL远程连接设置(转载)

本文介绍了一种通过将Web服务器与MySQL数据库分离的方法来提高网站性能的技术方案。该方案涉及配置两台独立的服务器,分别用于承载Web服务和数据库服务,并详细说明了如何设置MySQL以允许远程访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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,当然你可以随意设置。
最后要刷新MySQL的系统权限相关表
mysql> flush privileges;


实际操作中,最好两台机器在同一个机房的同一网段/防火墙内。当然如果有可能的话,将数据库服务器放置于web服务器网络内的局域网中就更好了。

曾经把本地的MySQL的localhost上的root用户IP设为"xxx.xxx.xxx.xxx”另一机器,无法登陆。经过一番研究得到解决方法:

先把本地IP改为"xxx.xxx.xxx.xxx”,登陆进后增加一条记录或修改当前IP为localhost,将本机IP改回去即可登录。若显示1045错误请看如下解决方法。

另附:

ERROR 1045 (28000): Access denied for user 'xcj'@'localhost' (using password: YES)


#新加用户服务xcj,新加的用户不能马上生效
mysql> grant all on *.* to xcj@'%' identified by "xcj_passwd";
Query OK, 0 rows affected (0.04 sec)

#生效新加用户xcj权限
mysql> flush privileges;
Query OK, 0 rows affected (0.03 sec)


[root@openfire pdf_spider]# mysql -uxcj -p'xcj_passwd'
Welcome to the MySQL monitor.   Commands end with ; or /g.
Your MySQL connection id is 4593
Server version: 5.0.45-log MySQL Community Server (GPL)

Type 'help;' or '/h' for help. Type '/c' to clear the buffer.

mysql>

菊子曰 本文用 菊子曰发布
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值