mysql数据库授权root_修改MySQL数据库中root用户的密码及访问权限

一:整理了以下四种在MySQL中修改root密码的方法,可能对大家有所帮助!

方法1: 用SET PASSWORD命令

mysql -u root

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

方法2:用mysqladmin

mysqladmin -u root password "newpass"

如果root已经设置过密码,采用如下方法

mysqladmin -u root password oldpass "newpass"

方法3: 用UPDATE直接编辑user表

mysql -u root

mysql> use mysql;

mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';

mysql> FLUSH PRIVILEGES;

在丢失root密码的时候,可以这样

mysqld_safe --skip-grant-tables&

mysql -u root mysql

mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root';

mysql> FLUSH PRIVILEGES;

二:MySQL服务访问权限

mysql默认只能从本地连接,查看了/etc/mysql/my.cnf找到bind-address才发现配置的是127.0.0.1(bind-address=127.0.0.1),直接改为bind-address=192.168.0.xxx(本机ip),然后再查看3306端口打开了,ok,可以正常连接了。

所以除了给账户权限以外 还有修改 /etc/mysql/my.cnf 找到 bind-address = 127.0.0.1 修改为

bind-address = 0.0.0.0

重启mysql :

sudo /etc/init.d/mysql restart

否则会报 ERROR 2003 (HY000): Can't connect to MySQL server on 'x.x.x.x' (111)

环境:RHEL 5.3

安装了MySQL之后,MySQL的root用户默认是不开放远程访问权限的。为了开放它,只需要两步:

用Linux系统的root用户登录系统,然后:

(1)开放3306端口的远程连接权限:

在“-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited”这一行的上面(注意,一定是上面),添加如下一行:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

然后重启iptables:

[root@localhost ~]# service iptables restart

(2)为MySQL的root用户添加远程访问权限:

[root@localhost ~]# mysql

mysql> grant all on *.* to root@'%' identified by 'your_password';

Query OK, 0 rows affected (0.01 sec)

mysql> FLUSH PRIVILEGES;

mysql> exit

Bye

[root@localhost ~]# /etc/init.d/mysql restart

搞定。

localhost是什么?localhost与127.0.0.1之间的关系

localhost代表的是本地的意思

一般来说 代表IP地址的话就是127.0.0.1

也就是说 我 ping 127.0.0.1 == ping localhost

127.0.0.1是代表自己机器的回路地址,无论是否联网,自己机器都是127.0.0.1,127段是保留区段。

localhost与127.0.0.1的关系:

localhost可以看成主机名,127--可以看成主机ip,中间曾在一个主机名到ip地址的映射!

如果你在mysql中连接数据库,要用localhost而不能用127.0.0.1。因为mysql中对于用户的登陆位置是有限定的,具体见mysql数据库(database名字就是mysql)里面的user表,里面存放的ip和存放的域名是不一样的,mysql进行匹配时不会自动将ip转换成域名的。你授权一个用户从这个ip访问,不等于授权他从这个余名访问。

1、mysql -h 127.0.0.1 的时候,使用TCP/IP连接,

mysql server 认为该连接来自于127.0.0.1或者是"localhost.localdomain" 。

2、mysql -h localhost 的时候,是不使用TCP/IP连接的,而使用Unix socket;

此时,mysql server则认为该client是来自"localhost" 。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值