怎么使用linux的mysql root权限不足获得mysql的mysql root权限不足

专一的丸子 的BLOG
用户名:专一的丸子
文章数:33
访问量:33845
注册日期:
阅读量:5863
阅读量:12276
阅读量:353273
阅读量:1051113
[匿名]51cto游客:
51CTO推荐博文
1、如果不想每次都输入mysql &uroot &p登录
【问题】修改完看不到表啦,只有两个表
以前也碰到过类似问题,以为不是以root身份登录的,所以想到跳过授权表修改root密码
linux忘记mysql密码处理方法,需要的朋友可以参考下。
linux忘记mysql密码处理方法:
# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql& update user set password=password('newpassword') where user='root';
mysql& quit
# /etc/init.d/mysql restart
# mysql -uroot -p
enter password: &输入新设的密码newpassword&
可是还是不行
【问题原因以及解决方法】:、
跳过授权表是对的,真正原因是root读授权表时,会读里面的相关权限,而我开始自己手动创建的root用户,(把原来默认的都删除了),导致所有权限创建时默认都为no。
&mysql& select& User, Host, Password& from mysql.
+------+-----------+-------------------------------------------+
| User | Host&&&&& | Password&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& |
+------+-----------+-------------------------------------------+
| root | 127.0.0.1 | *E6CC90B878B948C35E92B003C792C46C58C4AF40 |
| root | ::1&&&&&& | *E6CC90B878B948C35E92B003C792C46C58C4AF40 |
| root | %&&&&&&&& | *E6CC90B878B948C35E92B003C792C46C58C4AF40 |
| app& | gs_app_%& | *5BCB3E6AC345B435C7C2E6BF6563D3 |
+------+-----------+-------------------------------------------+
查看这个root用户的所有权限都存在,知识Host不对,改一下这个的Host为%,意思是让所有通过root登录的用户所有权限都有
*************************** 2. row ***************************
&&&&&&&&&&&&&&&&& Host: ::1
&&&&&&&&&&&&&&&&& User: root
&&&&&&&&&&&&& Password: *E6CC90B878B948C35E92B003C792C46C58C4AF40
&&&&&&&&&& Select_priv: Y
&&&&&&&&&& Insert_priv: Y
&&&&&&&&&& Update_priv: Y
&&&&&&&&&& Delete_priv: Y
&&&&&&&&&& Create_priv: Y
&&&&&&&&&&&& Drop_priv: Y
&&&&&&&&&& Reload_priv: Y
&&&&&&&& Shutdown_priv: Y
&&&&&&&&& Process_priv: Y
&&&&&&&&&&&& File_priv: Y
&&&&&&&&&&& Grant_priv: Y
&&&&&& References_priv: Y
&&&&&&&&&&& Index_priv: Y
&&&&&&&&&&& Alter_priv: Y
&&&&&&&&& Show_db_priv: Y
&&&&&&&&&&& Super_priv: Y
&Create_tmp_table_priv: Y
&&&&& Lock_tables_priv: Y
&&&&&&&&& Execute_priv: Y
&&&&&& Repl_slave_priv: Y
&&&&& Repl_client_priv: Y
&&&&& Create_view_priv: Y
&&&&&&& Show_view_priv: Y
&& Create_routine_priv: Y
&&& Alter_routine_priv: Y
&&&&& Create_user_priv: Y
&&&&&&&&&&& Event_priv: Y
&&&&&&&&& Trigger_priv: Y
Create_tablespace_priv: Y
&&&&&&&&&&&&& ssl_type:
&&&&&&&&&&& ssl_cipher:
&&&&&&&&&& x509_issuer:
&&&&&&&&& x509_subject:
&&&&&&&& max_questions: 0
&&&&&&&&&& max_updates: 0
&&&&&& max_connections: 0
&max_user_connections: 0
&&&&&&&&&&&&&&& plugin:
&authentication_string:
问题解决!
[root@sunshine&zstest]#&service&mysql&restart &Shutting&down&MySQL..&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&[&&OK&&] &Starting&MySQL....&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&[&&OK&&] &[root@sunshine&zstest]#&mysql &ERROR&):&Access&denied&for&user&'root'@'localhost'&(using&password:&NO) &[root@sunshine&zstest]#&mysql&-uroot&-p &Enter&password:& &Welcome&to&the&MySQL&monitor.&&Commands&end&with&;&or&\g. &Your&MySQL&connection&id&is&2 &Server&version:&5.5.19-log&MySQL&Community&Server&(GPL) &&Copyright&(c)&,&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&''&or&'\h'&for&help.&Type&'\c'&to&clear&the&current&input&statement. &&mysql&&show& &+&|&Database&&&&&&&&&&&| &+&|&information_schema&| &|&mysql&&&&&&&&&&&&&&| &|&performance_schema&| &|&test&&&&&&&&&&&&&&&| &|&zstest&&&&&&&&&&&&&| &+&5&rows&in&set&(0.02&sec) &本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)> 怎么使用linux的root权限获得mysql的root权限?
怎么使用linux的root权限获得mysql的root权限?
taohuating & &
发布时间: & &
浏览:10 & &
回复:2 & &
悬赏:0.0希赛币
如何使用linux的root权限获得mysql的root权限???linux是我装的,手里有root帐号,但是mysql是别人装的,root帐号给搞没了,请问能否使用linux的root权限获得mysql的root权限?
亲自用过,步骤简单不爱写,抄自网上:1.用root或者运行mysqld的用户登录系统;2.利用kill命令结束掉mysqld的进程;3.使用--skip-grant-tables参数启动MySQL Servershell&mysqld_safe --skip-grant-tables &4.为root@localhost设置新密码shell&mysqladmin -u root flush-privileges password &newpassword&5.重启MySQL Server
taoiy1 & &
00:42:33 & &
& & (0)(0)引用
参考下贴三楼taojiantianjin & &
00:42:33 & &
& & (0)(0)引用
本问题标题:
本问题地址:
温馨提示:本问答中心的任何言论仅代表发言者个人的观点,与希赛网立场无关。请对您的言论负责,遵守中华人民共和国有关法律、法规。如果您的言论违反希赛网问答中心的规则,将会被删除。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&微信公众号:centoscn
修改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&
  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/f找到bind-address才发现配置的是127.0.0.1(bind-address=127.0.0.1),直接改为bind-address=192.168.0.xxx(本机ip),然后再查看3306端口打开了,ok,可以正常连接了。
所以除了给账户权限以外 还有修改 /etc/f 找到 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& exit
[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& 。
------分隔线----------------------------

我要回帖

更多关于 mysql root权限 的文章

 

随机推荐