你说的是用MYSQL的客户端访问远程数据库吧。这个跟访问你本地的数据库是一样的,但是你要注意的是远程的数据库是不是允许你远程访问,如果人家的数据库不让远程访问,那你怎么也是不可能访问到的。现在的一般人家是不允许你远程访问的,这样比较安全;如果可以的话那你就跟访问你本地的一样,输入IP,帐号,密码就可以进了。。。
如果你在一个远程的VPS上运行了MySQL服务器,你会如何管理你的远程数据库主机呢?基于web的数据库管理工具例如phpMyAdmin或者Adminer可能会是你第一个想起的。这些基于web的管理工具需要一个正常运行的后端的web服务和PHP引擎。但是,如果你的VPS仅仅用来做数据库服务(例如,数据库与其它服务独立存放的分布式结构),为偶尔的数据库管理提供一整套的LAMP是浪费VPS资源的。更糟的是,LAMP所打开的>
三种解决方法:
1、改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改
"mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
mysql -u root -pvmware
mysql>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为19216816的主机连接到mysql服务器,并使用mypassword作为密码
GRANT
ALL PRIVILEGES ON TO 'myuser'@'19216813'IDENTIFIED BY 'mypassword' WITH
GRANT OPTION;
我用的第一个方法,刚开始发现不行,在网上查了一下,少执行一个语句 mysql>FLUSH RIVILEGES
使修改生效,就可以了
第三种方法:
在安装mysql的机器上运行:
1、d:\mysql\bin\>mysql -h localhost -u root
//这样应该可以进入MySQL服务器
2、mysql>GRANT ALL PRIVILEGES ON TO 'root'@'%'WITH GRANT OPTION
//赋予任何主机访问数据的权限
3、mysql>FLUSH PRIVILEGES
//修改生效
4、mysql>EXIT
//退出MySQL服务器
这样就可以在其它任何的主机上以root身份登录了。
之上是找的资源,实际情况是你远程额服务器,如果是用服务器的话,安装的有PHPMYADMIN, 那么将省去很多代码。
使用“Ctrl + R”组合键快速打开cmd窗口,并输入“cmd”命令,打开cmd窗口。
使用“mysql -uroot -proot”命令可以连接到本地的mysql服务。
使用“use mysql”命令,选择要使用的数据库,修改远程连接的基本信息,保存在mysql数据库中,因此使用mysql数据库。
使用“GRANT ALL PRIVILEGES ON TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;”命令可以更改远程连接的设置。
使用“flush privileges;”命令刷新刚才修改的权限,使其生效。
6
使用“select host,user from user;”查看修改是否成功。
这个目前应该是MySQL比较新的版本了,教程仅在Linux平台上验证通过,其他平台请自证。提供步骤和思路方便快速分析和定位问题。
根据需求在完成理解前面步骤后,接下来需要配置允许远程连接(生产环境请通过ssh隧道方式,且mysql配置文件bind-address为特定ip或本机)
最后,感谢您的阅读,由于时间仓促,文章内容难免有不妥之处,欢迎交流和指正~~
Mark一下 惟月慎行 再也不会迷路了^_^!
MYSQL这样的数据库,本身就是为远程设计的,客户端与服务器使用TCP/IP连接,是否远程、本地都没关系,只要授权即可。
如果你的网站支持PHP,那么你可以下载一个PHPMYADMIN来安装在你的网站上,这样任何地方都可以通过WEB方式对数据库进行管理。
另外一种方式,就是在任何机器上,只要有MYSQL的客户端(MYSQLEXE)程序,就可以连接任意一个MYSQL数据库,进行相关管理 *** 作。
补充:
那你就直接问受权呀。MYSQL受权命令的语法如下:
GRANT priv_type [(column_list)] [, priv_type [(column_list)]]
ON [object_type] {tbl_name | | | db_name}
TO user [IDENTIFIED BY [PASSWORD] 'password']
[, user [IDENTIFIED BY [PASSWORD] 'password']]
[REQUIRE
NONE |
[{SSL| X509}]
[CIPHER 'cipher' [AND]]
[ISSUER 'issuer' [AND]]
[SUBJECT 'subject']]
[WITH with_option [with_option] ]
object_type =
TABLE
| FUNCTION
| PROCEDURE
with_option =
GRANT OPTION
| MAX_QUERIES_PER_HOUR count
| MAX_UPDATES_PER_HOUR count
| MAX_CONNECTIONS_PER_HOUR count
| MAX_USER_CONNECTIONS count
例子:
grant select,delete,update,drop on mysql to 'jqzhang'@'localhost' identified by '123';
上面授予本机(localhost)用户jqzhang对mysql数据库的select等权限。
我还是提醒你一下,PHPMYADMIN管理无需数据库受权,因为无论你在哪里管理,连接数据库的用户的机器始终是WEB服务器。
我以上说的所有内容你在baidu都能找到,我相信我不可能发现一个现在世界上没人知道的东西。
开启 MySQL 的远程登陆帐号有两大步:
1、确定服务器上的防火墙没有阻止 3306 端口。
MySQL 默认的端口是 3306 ,需要确定防火墙没有阻止 3306 端口,否则远程是无法通过 3306 端口连接到 MySQL 的。
如果您在安装 MySQL 时指定了其他端口,请在防火墙中开启您指定的 MySQL 使用的端口号。
如果不知道怎样设置您的服务器上的防火墙,请向您的服务器管理员咨询。
2、增加允许远程连接 MySQL 用户并授权。
1)首先以 root 帐户登陆 MySQL
在 Windows 主机中点击开始菜单,运行,输入“cmd”,进入控制台,MySQL 的 bin 目录下,然后输入下面的命令。
在 Linux 主机中在命令提示行下输入下面的命令。
> MySQL -uroot -p123456
123456 为 root 用户的密码。
2)创建远程登陆用户并授权
> grant all PRIVILEGES on discuz to ted@'123123123123' identified by '123456';
上面的语句表示将 discuz 数据库的所有权限授权给 ted 这个用户,允许 ted 用户在 123123123123 这个 IP 进行远程登陆,并设置 ted 用户的密码为 123456 。
下面逐一分析所有的参数:
all PRIVILEGES 表示赋予所有的权限给指定用户,这里也可以替换为赋予某一具体的权限,例如:select,insert,update,sqlserver/42947htm target=_blank >delete,create,drop 等,具体权限间用“,”半角逗号分隔。
discuz 表示上面的权限是针对于哪个表的,discuz 指的是数据库,后面的
表示对于所有的表,由此可以推理出:对于全部数据库的全部表授权为“”,对于某一数据库的全部表授权为“数据库名”,对于某一数据库的某一表授
权为“数据库名表名”。
ted 表示你要给哪个用户授权,这个用户可以是存在的用户,也可以是不存在的用户。
123123123123 表示允许远程连接的 IP 地址,如果想不限制链接的 IP 则设置为“%”即可。
123456 为用户的密码。
执行了上面的语句后,再执行下面的语句,方可立即生效。
> flush privileges;
远程登录mysql一些常用的代码段,大家可参考一下。
一、允许root用户在任何地方进行远程登录,并具有所有库任何 *** 作权限,具体 *** 作如下:
在本机先使用root用户登录mysql:
mysql -u root -p"youpassword"
进行授权 *** 作:
mysql>GRANT ALL PRIVILEGES ON TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
重载授权表:
FLUSH PRIVILEGES;
退出mysql数据库:
exit
二、允许root用户在一个特定的IP进行远程登录,并具有所有库任何 *** 作权限,具体 *** 作如下:
在本机先使用root用户登录mysql:
mysql -u root -p"youpassword"
进行授权 *** 作:
GRANT ALL PRIVILEGES ON TO root@"1721616152" IDENTIFIED BY "youpassword" WITH GRANT OPTION;
重载授权表:
FLUSH PRIVILEGES;
退出mysql数据库:
exit
三、允许root用户在一个特定的IP进行远程登录,并具有所有库特定 *** 作权限,具体 *** 作如下:
在本机先使用root用户登录mysql:
mysql -u root -p"youpassword"
进行授权 *** 作:
GRANT select,insert,update,delete ON TO root@"1721616152" IDENTIFIED BY "youpassword";
重载授权表:
FLUSH PRIVILEGES;
退出mysql数据库:
exit
四、删除用户授权,需要使用REVOKE命令,具体命令格式为:
REVOKE privileges ON 数据库[表名] FROM user-name;
具体实例,先在本机登录mysql:
mysql -u root -p"youpassword"
进行授权 *** 作:
GRANT select,insert,update,delete ON TEST-DB TO test-user@"1721616152" IDENTIFIED BY "youpassword";
再进行删除授权 *** 作:
REVOKE all on TEST-DB from test-user;
注:该 *** 作只是清除了用户对于TEST-DB的相关授权权限,但是这个“test-user”这个用户还是存在。
最后从用户表内清除用户:
DELETE FROM user WHERE user="test-user";
重载授权表:
FLUSH PRIVILEGES;
退出mysql数据库:
exit
以上就是关于怎么用MYSQL访问远程数据库全部的内容,包括:怎么用MYSQL访问远程数据库、如何使用图形化工具远程管理 Linux 上的 MySQL、如何远程访问MySQL数据库详解等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)