mysql登录授权
Ⅰ 怎么设置mysql root用户可以即从本地登陆,又可远程登陆
为了迁移mysql到oracle,采用了oracle的sql developer工具,并下载了mysql
jdbc驱动(为了让sql developer连接mysql)
为了从oracle sql developer远程以root连接mysql
1
2
3
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY '123456' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql>
在设置root账户密码时,可以选择是否允许其从远程访问。默认情况下是不允许的。
在命令行下,可以有两种大同小异的方法来作此设置:
(1)
1
2
3
mysql>GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY 'something' WITH GRANT OPTION;
mysql>GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY 'something' WITH GRANT OPTION;
第一句增加了一个root用户授权通过本地机(localhost)访问,密码“something”。
第二句则是使用通配符,授与root用户从任何其它主机发起的访问。
(2)亦可直接使用update语句修改user表:使用root用户或其他用户登录mysql,转到mysql数据库
1
2
3
4
5
update user set host='localhost' where user='root';
flush privileges;//只允许root在本机登录
update user set host='%' where user='root';
flush privileges;//允许root远程访问
注意,以上一定要加flush语句。
另外,如果要建新用户,则用grant语句比较方便,记住语句grant总是创建新用户。
例如我目前的库:
mysql> select host,user from user;
+-----------+--------+
| host | user |
+-----------+--------+
| % | mytest |
| % | root |
| localhost | mytest |
| localhost | root |
+-----------+--------+
4 rows in set (0.00 sec)
root和mytest都既能本地连,也能远程连
Ⅱ 如何关闭mysql远程登录权限
1、本地登录到mysql数据库,mysql -uroot -p。
Ⅲ mysql授权中IDENTIFIED by的作用是怎么样的
使用以下授权抄语句,将授权指定的192.168.1.1 和192.168.1.2 的机器,使用用户名为root,密码为test123的用户访问 grant all privileges on *.* to 'root'@'192.168.1.1' identified by 'test123'; grant all privileges on *.* to 'root'@'192.168.1.2' identified by 'test123';
Ⅳ 如何给MySql创建连接用户并授权
一般在为MySql创建用户时建议使用GRANT前台命令,当然如果对我们开发者而言,方法还有很多种,比如使用INSERT命令,甚至是直接修改mysql user数据表,但仍然建议按照MySQL规范去授权账户。因为它太容易忘记,特别整理方便参考。
1、登录MySQL
输入mysql -u root和密码即可登录到Mysql。
2、选择数据库
语句如下:use mysql;
3、在mysql的user表中增加连接用户
GRANT USAGE ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
其中:
“username”替换为将要授权的用户名,比如clientusr;
“password”替换为clientusr设置的密码;
4、可访问数据表授权
创建好帐户之后,就开始给上面的common user进行数据表授权,步骤3中增加的连接用户默认权限都是“N”的,必须在db表中为该帐户授权,允许其访问专用数据库,当然超级用户就不说了。
使用下面语句:
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON dbx.* TO 'username'@'localhost' IDENTIFIED BY 'password';
本语句中的权限根据实际需要确定:
"dbx"替换为授权访问的数据库名,如果只给某张表授权:dbx.tablename
"username"是步骤2授权用户名
"password"是步骤2授权用户的设置密码
这样就为该用户授予了对某数据表的SELECT, INSERT, UPDATE, DELETE, CAREATE, DROP权限。
5、生效授权,创建完毕
FLUSH PRIVILEGES;
备注:
1、不要直接使用INSERT语句添加user记录,使用INSERT可能出现:ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value错误。不过早期的MYSQL版本笔者倒没出现这个错误,因为天缘一直都是直接修改user表或直接使用INSERT语句完成,后来升级MYSQL到5.1的时候,发现可能会出现这个错误。
2、上文3和4,也可使用一句话GRANT ALL ON tbx.* TO 'username' IDENTIFIED BY 'password',这句话会自动创建username并为之授权。更多授权权限可参考MYSQL官方网站。
Ⅳ 如何让mysql以root用户远程登陆mysql数据库
开启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)创建远程登陆用户并授权
>grantallPRIVILEGESondiscuz.*toted@'123.123.123.123'identifiedby'123456';
上面的语句表示将discuz数据库的所有权限授权给ted这个用户,允许ted用户在123.123.123.123这个IP进行远程登陆,并设置ted用户的密码为123456。
下面逐一分析所有的参数:
allPRIVILEGES表示赋予所有的权限给指定用户,这里也可以替换为赋予某一具体的权限,例如:select,insert,update,sqlserver/42947.htmtarget=_blank>delete,create,drop等,具体权限间用“,”半角逗号分隔。
discuz.*表示上面的权限是针对于哪个表的,discuz指的是数据库,后面的*
表示对于所有的表,由此可以推理出:对于全部数据库的全部表授权为“*.*”,对于某一数据库的全部表授权为“数据库名.*”,对于某一数据库的某一表授
权为“数据库名.表名”。
ted表示你要给哪个用户授权,这个用户可以是存在的用户,也可以是不存在的用户。
123.123.123.123表示允许远程连接的IP地址,如果想不限制链接的IP则设置为“%”即可。
123456为用户的密码。
执行了上面的语句后,再执行下面的语句,方可立即生效。
>flushprivileges;
远程登录mysql一些常用的代码段,大家可参考一下。
一、允许root用户在任何地方进行远程登录,并具有所有库任何操作权限,具体操作如下:
在本机先使用root用户登录mysql:
mysql-uroot-p"youpassword"
进行授权操作:
mysql>GRANTALLPRIVILEGESON*.*TO'root'@'%'IDENTIFIEDBY'youpassword'WITHGRANTOPTION;
重载授权表:
FLUSHPRIVILEGES;
退出mysql数据库:
exit
二、允许root用户在一个特定的IP进行远程登录,并具有所有库任何操作权限,具体操作如下:
在本机先使用root用户登录mysql:
mysql-uroot-p"youpassword"
进行授权操作:
GRANTALLPRIVILEGESON*.*TOroot@"172.16.16.152"IDENTIFIEDBY"youpassword"WITHGRANTOPTION;
重载授权表:
FLUSHPRIVILEGES;
退出mysql数据库:
exit
三、允许root用户在一个特定的IP进行远程登录,并具有所有库特定操作权限,具体操作如下:
在本机先使用root用户登录mysql:
mysql-uroot-p"youpassword"
进行授权操作:
GRANTselect,insert,update,deleteON*.*TOroot@"172.16.16.152"IDENTIFIEDBY"youpassword";
重载授权表:
FLUSHPRIVILEGES;
退出mysql数据库:
exit
四、删除用户授权,需要使用REVOKE命令,具体命令格式为:
REVOKEprivilegesON数据库[.表名]FROMuser-name;
具体实例,先在本机登录mysql:
mysql-uroot-p"youpassword"
进行授权操作:
GRANTselect,insert,update,deleteONTEST-DBTOtest-user@"172.16.16.152"IDENTIFIEDBY"youpassword";
再进行删除授权操作:
REVOKEallonTEST-DBfromtest-user;
****注:该操作只是清除了用户对于TEST-DB的相关授权权限,但是这个“test-user”这个用户还是存在。
最后从用户表内清除用户:
DELETEFROMuserWHEREuser="test-user";
重载授权表:
FLUSHPRIVILEGES;
退出mysql数据库:
exit
Ⅵ mysql授权后用户为什么访问不了
建议你先通过 >show grants for user_name; 命令查询你的用户权限
Ⅶ mysql 用户登录需要授权吗
命令:GRANT privileges ON databasename.tablename TO 'username'@'host'
说明: privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.
例子: GRANT SELECT, INSERT ON test.user TO 'pig'@'%';
GRANT ALL ON *.* TO 'pig'@'%';
注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
Ⅷ mysql中怎样允许把自己的权限授权给其他用户
grant select on xxx to user1 with grant option就可以了
Ⅸ mysql怎样添加用户授权
方法/步骤
我们以管理员的身份先登录到数据库服务器上,我想登录到数据库服务器
Ⅹ mysql 授权 user@%'为什么登陆的时候localhost 不行
原因: %不包括 localhost
mysql> grant all on salt.* to salt@‘%‘ identified by ‘salt‘;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
[root@saltstack_s yum.repos.d]# mysql -u salt -psaltpasswd@123 -h localhost #登陆不了的原因。是因为上面授权的*不包括localhost
ERROR 1045 (28000): Access denied for user ‘salt‘@‘localhost‘ (using password: YES)
[root@saltstack_s ~]# mysql -usalt -p -h 192.168.92.128
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.73 Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
mysql>