A1:
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;
假如你想新建一个用户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′);
当你的数据库可以远程连接后,你就可以在你的Web服务器的论坛config.inc.php中设置$dbhost变量为你的MySQL数据库服务器B的IP了:
实际操作中,最好两台机器在同一个机房的同一网段/防火墙内.当然如果有可能的话,将数据库服务器放置于Web服务器网络内的局域网中就更好了.
flush privileges; //使权限立刻生效