如何开启MySQL的远程帐号
基于安全考虑root账户一般只能本地访问,但是在开发过程中可能需要打开root的远程访问权限。下面是基本的步骤:
1、登录到mysql中,为root进行远程访问的授权,执行下面的命令:
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";
mysql> flush privileges;
第一句中"%"表示任何主机都可以远程登录到该服务器上访问。如果要限制只有某台机器可以访问,将其换成相应的IP即可,如:
GRANT ALL PRIVILEGES ON *.* TO root@"172.168.193.25" IDENTIFIED BY "root";
第二句表示从mysql数据库的grant表中重新加载权限数据。因为MySQL把权限都放在了cache中,所以在做完更改后需要重新加载。
2、修改/etc/mysql/my.cnf,需要root用户权限。找到文件中的:
将其注释掉,保存。
3、重新启动MySQL服务器。执行下面的几条命令即可:
# /usr/bin/mysqladmin -u root -p shutdown
# /usr/bin/mysqld_safe &
如果mysqladmin和mysql_safe不在/usr/bin目录中,可以通过whereis命令查找,例如:
# whereis mysqladmin
mysqladmin: /usr/bin/mysqladmin /usr/share/man/man1/mysqladmin.1.gz
执行完上面的三步后,就可以通过远程机器连接了数据库了。
root用户登录,命令行运行 grant all privileges on *.* to '用户名'@'%' identified by '登录密码';
开启 MySQL 的远程登陆帐号有两大步:1、确定服务器上的防火墙没有阻止 3306 端口。
MySQL 默认的端口是 3306 ,需要确定防火墙没有阻止 3306 端口,否则远程是无法通过 3306 端口连接到 MySQL 的。
如果您在安装 MySQL 时指定了其他端口,请在防火墙中开启您指定的 MySQL 使用的端口号。
如果不知道怎样设置您的服务器上的防火墙,请向您的服务器管理员咨询。
2、增加允许远程连接 MySQL 用户并授权。
1)首先以 root 帐户登陆 MySQL
在 Windows 主机中点击开始菜单,运行,输入“cmd”,进入控制台,MySQL 的 bin 目录下,然后输入下面的命令。
在 Linux 主机中在命令提示行下输入下面的命令。
CODE: [COPY]
> MySQL -uroot -p123456
123456 为 root 用户的密码。
2)创建远程登陆用户并授权
CODE: [COPY]
> grant all PRIVILEGES on discuz.* to ted@'123.123.123.123' identified by '123456';
上面的语句表示将 discuz 数据库的所有权限授权给 ted 这个用户,允许 ted 用户在 123.123.123.123 这个 IP 进行远程登陆,并设置 ted 用户的密码为 123456 。
下面逐一分析所有的参数:
all PRIVILEGES 表示赋予所有的权限给指定用户,这里也可以替换为赋予某一具体的权限,例如:select,insert,update,delete,create,drop 等,具体权限间用“,”半角逗号分隔。
discuz.* 表示上面的权限是针对于哪个表的,discuz 指的是数据库,后面的 * 表示对于所有的表,由此可以推理出:对于全部数据库的全部表授权为“*.*”,对于某一数据库的全部表授权为“数据库名.*”,对于某一数据库的某一表授 权为“数据库名.表名”。
ted 表示你要给哪个用户授权,这个用户可以是存在的用户,也可以是不存在的用户。
123.123.123.123 表示允许远程连接的 IP 地址,如果想不限制链接的 IP 则设置为“%”即可。
123456 为用户的密码。
执行了上面的语句后,再执行下面的语句,方可立即生效。
CODE: [COPY]
> flush privileges;
-----------------------------------------------------------------------------------------------------------------
解决方法:
1、改表法:
可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从“localhost”改称“%”
x:\>mysql -u root -pvmware
mysql> use mysql;
mysql> update user set host = ‘%’ where user = ‘root’;
mysql> select host, user from user;
mysql> flush privileges;
注:mysql> flush privileges; 使修改生效。
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; //使权限立刻生效
一醉经年:何故开启愉悦欧洲游,宋居寒千里追妻,贺一找情敌签名
何故终于从七年沉醉中清醒了,宋居寒一次次地践踏他的底线,消耗他的爱意。何故在与宋居寒度过最后一夜后,收拾好行李,告别过去。他要开启他全新的人生了。何故和宋居寒的爱情就此终止,咕咕终于狠下心来,走出这场失败的暗恋,追逐自己的生活了。重生的咕咕,自信又美好。他决定为自己放个假,尽情地...
要碰到,永远青春的梦
如果脚上镣铐沉重,无法踮脚,那就为自己搬张凳子,伸长手臂去触碰关于自由和勇敢的梦,苏阿姨选择用自己辛苦积攒的钱去开启新的人生旅程。 内心斑斓,做的梦永远青春 50岁的杨阿姨,说这是做梦的最好年纪。 是啊,就算年过半百又如何,抛开桎梏,依然可以尽情做梦。 自由的灵魂永远青春,让每一个时刻都成为自己最松弛、最...
开业大吉祝福语
盼望着,盼望着,开业的鞭炮响了,亲朋的笑声更亮了,心豁亮了,梦靠近了,无论走到何时何地,我都支持你,加油!祝愿开业大吉,生意兴隆。把开业大吉祝福语送给家人、爱人、朋友,希望他们早日实现自己的目标。 开业大吉祝福语给家人: 1、鞭炮的歌声,是助你开启成功的大门;宾朋的欢聚,是为你齐聚四方的财星;祝贺的贺词,...
让你秒变韩国欧尼!我的韩系穿搭秘籍来啦!
再加上一件印有“GINGER”字样的白色T恤和牛仔短裤,瞬间增添了街头风格,让人眼前一亮!材质舒适柔软,版式简洁大方,色彩搭配和谐自然,真是让人爱不释手!快来试试这套韩系穿搭吧,让你轻松变身韩国欧尼!无论是逛街还是约会,都能让你成为焦点!赶紧入手,开启你的时尚之旅吧! 抢首赞 评论 分享 举报 ...
何超琼为何能成为何鸿燊最喜爱的子女?
一、何超琼出生那一年,赌王正好标得了赌场的经营权。不知道是不是巧合,但是何超琼出生的很是时候,赌王在那一年就标得了赌场的经营权,从此开启了他精彩的一生。赌王肯定也觉得这个女儿是他的福星,自然对这个给自己带来的财运的女儿另眼相看。二、何超琼很有经商的天赋。何超琼一开始是自己创立了...
企业店铺可以注册天猫吗?有何条件?
很多具备公司资质的商家,想在天猫平台上开启一家店铺,来售卖相关行业的产品,但是对于天猫平台是否可以让企业店铺注册却不是很了解,那么我们一起来看一下有什么条件吧。一、企业店铺可以入驻天猫吗?企业店铺可以入驻天猫,具体条件如下:1、只有中国大陆的企业才有申请入驻天猫的资格,暂不接受个体工商户和...
凡尔登战役有何历史意义
如果要问凡尔登战役有何历史意义的话,那么就让我们先来简单了解一下凡尔登战役吧!1916年在法国的凡尔登,德国人想要攻下凡尔登进尔攻陷巴黎,所以发动了这场战争,参战双方分别是德意志帝国和法国及其协约国。 这场由德国开启的夺取凡尔登并最终攻克巴黎的战争最后是以德国的失败告终的,法国人保住了凡尔登。但凡尔登战役的...
莎莉文老师的教育艺术高明在何处
莎莉文老师热爱海伦,对海伦的教育讲究方法艺术,做到因势利导,循循善诱,而且善于抓住教育时机,开启海伦的思维、智慧和情感。莎莉文老师,美国著名的残障教育家。她在麻省出生,由于沙眼使她双目近乎失明,但在一连串手术之后得以重见光明,并顺利在山姆郝博士创建的柏金斯盲人学校毕业。毕业后她成为了海伦...
她是屠夫女儿却做了皇后,开启三国乱世之门,她做了什么成为皇后?_百度...
汉灵帝死后,刘辩继位,何莲成了皇太后,和哥哥何进一起把持朝政,逼死了婆婆董太后,董太后死后,何进害怕何莲会杀了自己,于是让董卓带兵进洛阳,可是董卓还没进来,何进就死了,董卓一看,心想我不能白跑一趟,于是打着给董太后报仇的名号废了刘辩改立刘协,再把刘协杀了自己当皇帝,开启了三国...
勇士将何去何从?不如退而求其次做好三点,开启交易择机卷土重来_百度知 ...
克莱-汤普森的猝然重伤显然让本赛季的金州勇士有点措手不及,好在鲍勃迈尔斯反应够快,使用交易球员特例和受保护的首轮签迅速从雷霆拉来乌布雷,作为克莱缺阵的替代品。紧接着,勇士又在过去24小时连续出手,一年225万美元签下前凯尔特人球员沃纳梅克;一年230万引进前国王球员贝兹莫尔,由于这两人的打法和...
甄依消咳: 本文提供了三种解决方法: 1、改表法.可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%" mysql -u ...
新丰县17867307447: 如何开启mysql远程登录帐号 - ?
甄依消咳: 1、确定服务器上的防火墙没有阻止 3306 端口.MySQL 默认的端口是 3306 ,需要确定防火墙没有阻止 3306 端口,否则远程是无法通过3306 端口连接到 MySQL 的.如果您在安装 MySQL 时指定了其他端口,请在防火墙中开启您指定的 ...
新丰县17867307447: mysql怎么添加用户远程登录 - ?
甄依消咳: 1,打开命令行2,使用root用户登录mysql: mysql -u root -p"这里输root用户的mysql密码" 3,进行授权操作,比如允许ip为111.111.111.111的远程用户登录,那就输入语句 GRANT ALL PRIVILEGES ON *.* TO root@"111.111.111.111" IDENTIFIED BY "远程用户登录的密码,自己设一个" WITH GRANT OPTION;4,重载授权表:输入语句 FLUSH PRIVILEGES; 这就ok了,那就可以远程用root用户,和你设置的远程登录密码连接mysql了
新丰县17867307447: 如何设置mysql远程访问 - ?
甄依消咳: 如何设置mysql远程访问 Mysql默认是不可以通过远程机器访问的,通过下面的配置可以开启远程访问 在MySQL Server端: 执行mysql 命令进入mysql 命令模式, Sql代码 mysql> use mysql; mysql> GRANT ALL ON *.* TO admin@'%' IDENTIFIED ...
新丰县17867307447: mysql怎么开启远程登录功能 - ?
甄依消咳: 进入cmd命令模式.mysql -h localhost-u mysql -p Enter password: ****** 连接数据库.mysql> use mysql; (此DB存放MySQL的各种配置信息) Database changed mysql> select host,user from user; (查看用户的权限情况)+-------------+-------+...
新丰县17867307447: 怎么开启mysql的远程登录链接 - ?
甄依消咳: 解决方法如下:1、修改表,登录mysql数据库,切换到mysql数据库,使用sql语句查看"select host,user from user ;" \mysql -u root -pvmwaremysql>use mysql; \mysql>update user set host = '%' where user='root'; \mysql>select host, user from user;...
新丰县17867307447: mysql怎么配置远程访问 - ?
甄依消咳: 默认情况下,mysql只允许本地登录,如果要开启远程连接,则需要修改/etc/mysql/my.conf文件.一、修改/etc/mysql/my.conf 找到bind-address = 127.0.0.1这一行 改为bind-address = 0.0.0.0即可 二、为需要远程登录的用户赋予权限1、新建用户...
新丰县17867307447: 如何允许mysql数据库远程访问 - ?
甄依消咳: 1、使用“窗口,并输入“cmd”命令,打开cmd窗口.2、使用“mysql -uroot -proot”命令可以连接到本地的mysql服务.3、使用“use mysql”命令,选择要使用的数据库,修改远程连接的基本信息,保存在mysql数据库中,因此使用mysql数据库.
新丰县17867307447: 如何设置mysql允许远程连接 - ?
甄依消咳: 1. 使用“Ctrl + R”组合键快速打开cmd窗口,并输入“cmd”命令,打开cmd窗口.2. 使用“mysql -uroot -proot”命令可以连接到本地的mysql服务.3. 使用“use mysql”命令,选择要使用的数据库,修改远程连接的基本信息,保存在mysql数...
新丰县17867307447: 服务器mysql数据库怎么开启远程 - ?
甄依消咳: 第一中方法:比较详细 以下的文章主要介绍的是MySQL 数据库开启远程连接的时机操作流程,其实开启MySQL 数据库远程连接的实际操作步骤并不难,知识方法对错而已,今天我们要向大家描述的是MySQL 数据库开启远程连接的时机操作流...