mysql授权远程访问%为什么root不行

mysql授权远程访问%为什么root不行,第1张

为了迁移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都既能本地连,也能远程连

方法一

使用phpmyadmin,这是最简单的了,修改mysql库的user表,

不过别忘了使用PASSWORD函数。

方法二

使用mysqladmin,这是前面声明的一个特例。

mysqladmin -u root -p password mypasswd

输入这个命令后,需要输入root的原密码,然后root的密码将改为mypasswd。

把命令里的root改为你的用户名,你就可以改你自己的密码了。

当然如果你的mysqladmin连接不上mysql server,或者你没有办法执行mysqladmin,

那么这种方法就是无效的。

而且mysqladmin无法把密码清空。

下面的方法都在mysql提示符下使用,且必须有mysql的root权限:

方法三

mysql>INSERT INTO mysql.user (Host,User,Password)

VALUES(%,jeffrey,PASSWORD(iscuit))

mysql>FLUSH PRIVILEGES

确切地说这是在增加一个用户,用户名为jeffrey,密码为biscuit。

在《mysql中文参考手册》里有这个例子,所以我也就写出来了。

注意要使用PASSWORD函数,然后还要使用FLUSH PRIVILEGES。

方法四

和方法三一样,只是使用了REPLACE语句

mysql>REPLACE INTO mysql.user (Host,User,Password)

VALUES(%,jeffrey,PASSWORD(iscuit))

mysql>FLUSH PRIVILEGES

方法五

使用SET PASSWORD语句,

mysql>SET PASSWORD FOR jeffrey@"%" = PASSWORD(iscuit)

你也必须使用PASSWORD()函数,

但是不需要使用FLUSH PRIVILEGES。

方法六

使用GRANT ... IDENTIFIED BY语句

mysql>GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY iscuit

这里PASSWORD()函数是不必要的,也不需要使用FLUSH PRIVILEGES。

注意: PASSWORD() [不是]以在Unix口令加密的同样方法施行口令加密。

1.以系统管理员登陆;

2.停止MySQL服务;

3.进入CMD,进入MySQL的安装目录,假设是D:/MySQL/MySQL

Server

5.0/;

4.跳过权限检查启动MySQL,

D:/MySQL/MySQL

Server

5.0/bin/mysqld-nt

–skip-grant-tables

5.重新打开一个CMD,进入D:/MySQL/MySQL

Server

5.0/bin/,

重设root密码

D:/MySQL/MySQL

Server

5.0/bin/mysqladmin

-uroot

flush-privileges

password

“newpassword”

D:/MySQL/MySQL

Server

5.0/bin/mysqladmin

-u

root

-p

shutdown

将newpassword替换为你的新密码,第二个命令会让你重复输入一次新

密码。

6.

在cmd里net

start

mysql

Unix&Linux:

1.用root或者运行mysqld的用户登录系统;

2.利用kill命令结束掉mysqld的进程;

3.使用–skip-grant-tables参数启动MySQL

Server

#mysqld_safe

–skip-grant-tables

&

4.然后用空密码方式使用root用户登录

MySQL;mysql

-u

root

5.为root@localhost设置新密码

mysql>

update

mysql.user

set

password=PASSWORD('新密码')

where

User='root'mysql>

flush

privileges;mysql>

quit

6.

重新启动MySQL


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/8446872.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存