MySql远程连接的设置问题 解决方案

2009年12月28日星期一 | | |

MySql远程连接的设置问题 解决方案
 
如果使用 web 和数据库不在同一台服务器上,MySQL 服务器就需要允许远程链接,网站才能正常运行。
MySQL  的远程链接设置有三种方法:

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;

2. 授权法。
例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码 GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; 
 

3. 还有一种就是界面式操作,这里推荐用phpmyadmin ,数据库管理工具.~~
root权限进入phpmyadmin,选择权限,将你需要的用户权限更改为%,(即任意主机链接可访问)。本例中,我们添加了一个新的用户fendy,并赋予任意主机的权限。这样的好处是将数据库分配给不同的用户,便于数据的管理。

添加完成后,如图:


设置好数据库以后,就可以在web服务器上进行相应的操作。这里以建立PHPWind7.32论坛程序为例。

1. 确定数据库服务器与web服务器直接的网络连接良好。需要关闭防火墙。在命令窗口Ping数据库服务器IP,可以查看连接情况:
如上图,表示连接正常。

2. 使用mysql远程连接
安装时在数据库项如下填写即可


这里还说一个窍门, 就是root 丢失用户权限或者其他权限的时候,可以拷贝其他机器上的mysql 用户权限文件库覆盖即可

win主机为例 ,拷贝x:/mysql/data/mysql/*.*   覆盖到对应的mysql目录, 记住:要先停止mysql
 
 

远程连接MySQL的步骤[转]

1、进入mysql,创建一个新用户xuys:
格式:grant 权限 on 数据库名.表名 用户@登录主机 identified by "用户密码";
grant select,update,insert,delete on *.* to [email protected] 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 -uroot -ppwd reload
./mysqladmin -uroot -ppwd 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步。
error: mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/var/web/mysql/mysql.sock' (2)'
Check that mysqld is running and that the socket: '/var/web/mysql/mysql.sock' exists!
 
谢谢光临偶滴的博客: http://home.benz.la  分享无限..
我的QQ空间
Discuz+UCHome伪静态化(精准攻略)
DZ和 家园的静态 个人感觉比动态的看着舒服 对搜索引擎也友好的...
 

0 评论:


所有文章收集于网络,如果有牵扯到版权问题请与本站站长联系。谢谢合作![email protected]