Linux 中的 mysql数据库,命令被拒绝的问题(ERROR 1044: Access denied for user ''@'localhost')
1、在命令模式下直接敲mysql可以进入mysql:
[root@localhost ~]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 5.1.49-community-log MySQL Community Server (GPL)
。。。
2、创建数据库出错:
mysql> create database tmonitor;
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'tmonitor'
mysql>
我明明是root登录的,为什么会是''@'localhost' ?
3、另外,我show一下数据库,却发现没有'mysql'库,咋回事?我记得mysql数据库中默认有个名叫‘mysql’的数据库,用来维护用户名、配置参数等信息的库啊:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
+--------------------+
2 rows in set (0.00 sec)
mysql>
4、如果是因为匿名登录,那我退出重新进入mysql吧:
mysql> exit
Bye
[root@localhost ~]# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
[root@localhost ~]#
——访问被拒绝了。。。。。。
各位大牛,这是咋回事?
是不是因为没有‘mysql’数据库,导致根本不存在‘root’这个用户,从而导致认证失败的?
------解决方案--------------------解决mysql“Access denied for user 'root'@'localhost'”
------解决方案--------------------应该是刚开始要初始化root的密码的
------解决方案--------------------你根本没说前因后果! 你安装之后 都还干了那些别的操作?
mysql默认安装之后root是没有密码的 会提示你设置root密码 你设置了吗?
如果你啥也不记得了 只有用楼上的连接里的恢复方法
------解决方案--------------------试试:
mysql -u root
------解决方案--------------------不是误删了吧
关注此帖
------解决方案--------------------
Access denied for user ''@'localhost'----电脑告诉你,匿名用户在本机毫无权限的意思。
Access denied for user 'root'@'localhost' -------root密码不对。
你的root假如没有密码,那么mysql -u root 就能进去。
也就是mysql和tmonitor数据库都不见了--------可能是没权限查看。
综上所述,这是root密码忘记类问题。
解决方法见手册 A.4.1. 如何复位根用户密码
------解决方案--------------------mysql数据库文件夹被删除了,或者被移动了,现在分区上找找看在哪里,看看时间对不对,如果是移动了,移回来即可,如果是删除了,那就要找一个相同的库覆盖或者重装了
------解决方案--------------------
看到数据目录 /var/lib/mysql 下面有mysql、test和tmonitor三个库,---------有tmonitor库!无需再建tmonitor库,也无法建。
但show出来只有只有test,不知道mysql和tmonitor哪儿去了?----root的权限被清空了,root成了匿名用户了。
很可能你装来装去,搞乱了。这时候,建议你备份tmonitor库后,停掉mysql库,把整个data目录删除,然后用mysql_install_db命令重新建。
mysql_install_db --basedir=/usr --datadir=/var/lib/mysql --user=mysql
其中basedir不一定是usr,自己研究下再确定,别搞错了。
--basedir The path to the MySQL installation directory.
备份恢复tmonitor库:
这个库所有表假如都是myisam,或没有innodb表的话,停库后复制走即备份,复制回即恢复。
有innodb表的话,需要备份所有innodb表空间,即ibdate*和ib_log*
------解决方案--------------------第一用mysql构建环境的时候 也出现过 1044 的错误,后来是在启动mysql的时候加了一个参数就可以了。
sorry参数具体是什么记不太清了。你google下吧。。