本文主要介绍了MYSQL如何配置远程连接,非常详细,有一定的参考价值。感兴趣的朋友一定要看!
打开MySQL的远程登录帐户有两个主要步骤:
1.确保服务器上的防火墙没有阻塞端口3306。
MySQL的默认端口是3306,所以需要确保防火墙没有屏蔽3306端口,否则远程用户无法通过3306端口连接MySQL。
如果在安装MySQL时指定了另一个端口,请在防火墙中打开您为MySQL指定的端口号。
如果您不知道如何在服务器上设置防火墙,请咨询您的服务器管理员。
2.添加允许远程连接的MySQL用户并授权。
1)首先以root账号登录MySQL。
在Windows主机中点击开始菜单,运行,输入“cmd”,进入MySQL bin目录下的控制台,然后输入以下命令。
在Linux主机的命令提示符行输入以下命令。
代码:[副本]
MySQL -uroot -p123456
13456是根用户的密码。
2)创建远程登录用户并授权。
代码:[副本]
授予discuz上的所有特权。*以ted@'123.123.123.123 '标识为' 123456 ';
上述声明表明,discuz数据库的所有权限都授权给ted,允许ted用户在123.123.123.123远程登录,ted用户的密码设置为123456。
下面逐一分析所有参数:
all PRIORIES意味着将所有权限授予指定的用户,但在这里也可以通过授予特定的权限来替换,例如选择、插入、更新、删除、创建、删除等。特定权限用逗号分隔。
Discuz。*表示上面的权限是针对哪个表的,discuz是指数据库,下面的*表示所有表,所以可以推断所有数据库中的所有表都被授权为" *。*,某个数据库中的所有表都被授权为“数据库名”。*,某个数据库中的表被授权为“数据库名”。表名”。
Ted指示您要授权哪个用户。该用户可以是现有用户或不存在的用户。
123.123.123.123表示允许远程连接的IP地址。如果不想限制链接的IP,请将其设置为“%”。
13456是用户的密码。
执行上述语句后,执行以下语句,该语句将立即生效。
代码:[副本]
刷新权限;
-
解决方法:
1.表格修改方法:
也许您的帐户不允许远程登录,只能在本地主机上登录。此时,只要localhost处的计算机登录到mysql,在“mysql”数据库中更改“user”表中的“host”项,将其从“localhost”重命名为“%”。
x:\mysql -u root -pvmware
mysql使用MySQL;
mysql更新用户集主机=“%”其中用户=“root”;
mysql从用户中选择主机、用户;
mysql刷新权限;
注意:mysql刷新权限;使修改生效。
2.授权法:
例如,如果您希望myuser使用mypassword从任何主机连接到mysql服务器。
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword’ WITH GRANT OPTION; |
转自:http://hi.baidu.com/593313600/blog/item/52c13d3d4640d208baa167cf.html/cmtid/df0698f382f04d5d352acce8
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
二、问如何开启MySQL的远程连接
Q:
最近学习PHP,装了个phpwind论坛和FTP流量插件,需要远程连接MySQL数据库.不知道如何打开本地服务器的远程连接.现在本地服务器上的论坛和FTP流量插件都运行正常,在另一台服务器上安装插件,连不上数据库.到PW官方求助没人回贴.因此来这寻求帮助.
服务器信息
PHP程式版本: 4.3.11
MySQL 版本: 4.1.10-nt
服务器端信息: Microsoft-IIS/5.0
装有phpMyAdmin
A1:
远程连接到MySQL需要做的
1. 进入MySQL,创建一个新用户xuys:
格式: grant 权限 on 数据库名.表名 用户@登录主机 identified by "用户密码";
grant select,update,insert,delete on *.* to xuys@192.168.88.234 identified by "xuys1234";
查看结果,执行:
use mysql;
select host,user,password from user;
可以看到在user表中已有刚才创建的xuys用户,host字段表示登录的主机,其值可以用IP,也可用主机名,将host字段的值改为%就表示在任何客户端机器上能以xuys用户登录到MySQL服务器,建议在开发时设为%.
update user set host = '%' where user = 'xuys';
2.
./mysqladmin -u root -p pwd reload
./mysqladmin -u root -p pwd shutdown
3.
./mysqld_safe --user=root &
记住: 对授权表的任何修改都需要重新reload,即执行第3步.
如果经过以上3个步骤还是无法从客户端连接,请执行以下操作,在MySQL数据库的db表中插入一条记录:
use mysql;
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';
重复执行上面的第2,3步.
A2:
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 -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)
也就是说,存在三个只允许本地连接的(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服务器的论坛config.inc.php中设置$dbhost变量为你的MySQL数据库服务器B的IP了:
$dbhost = '168.168.168.168';
实际操作中,最好两台机器在同一个机房的同一网段/防火墙内.当然如果有可能的话,将数据库服务器放置于Web服务器网络内的局域网中就更好了.
Q3:
还是这样简洁些:
grant all on yourdb.* to yourUsername@yourHost identified by "yourPassword";
flush privileges; //使权限立刻生效
以上是“MYSQL如何配置远程连接”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/61870.html