为什么进mysql需要用户和密码了_centos5安装 mysql 提示需要用户及密码进入?
有朋友在centos 5 上安裝mysql 一切正常,也能正常啟動。就是無法進入mysql
提示Duplicate entry 'localhost-' for key 1
需要用戶名及密碼,可是新安裝的mysql是沒有密碼的,這是為什么?
今天幫朋友試驗了一把解決了這個問題:
導致這個錯誤的原因:
因為安裝系統時設置了hostname為localhost導致mysql在創建表的時候沒有創建成功。因此mysql庫中user表里沒有root這個用戶或者說root沒有顯示出來,無法查看root的狀態。這時需要手動創建。然而在安全模式無法直接創建用戶,錯誤見下。
變個方向就能創建了,先給root給予權限,然后刷新表。之后就可以創建了。
具體步驟見下。有朋友遇到此問題可以依此解決。
一、killall -TERM mysqld
以安全模式啟動mysql
/usr/bin/mysqld_safe --skip-grant-tables &
進入mysql
/usr/bin/mysql
mysql> use mysql
Database changed
mysql> select * from user where user='root';
Empty set (0.00 sec)
mysql> grant all privileges on *.* to root@localhost identified by 'linuxtone' with GRANT OPTION;
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute
this statement
mysql> update user set password=password('linuxtone') where user='root';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 ?Changed: 0 ?Warnings: 0
注意單雙引號。
mysql> flush privileges; ? //注意先刷新下表
Query OK, 0 rows affected (0.00 sec)
mysql> grant all privileges on *.* to root@localhost identified by 'linuxtone' with GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from user where user='root';
+-----------+------+-------------------------------------------+-------------+-------------+-------------
+-------------+-------------+-----------+-------------+---------------+--------------+-----------+-------
-----+-----------------+------------+------------+--------------+------------+-----------------------+---
---------------+--------------+-----------------+------------------+------------------+----------------+-
--------------------+--------------------+------------------+----------+------------+-------------+------
--------+---------------+-------------+-----------------+----------------------+
| Host ? ? ?| User | Password ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?| Select_priv | Insert_priv | Update_priv |
Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv |
Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv
| Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv
| Create_routine_priv | Alter_routine_priv | Create_user_priv | ssl_type | ssl_cipher | x509_issuer |
x509_subject | max_questions | max_updates | max_connections | max_user_connections |
+-----------+------+-------------------------------------------+-------------+-------------+-------------
+-------------+-------------+-----------+-------------+---------------+--------------+-----------+-------
-----+-----------------+------------+------------+--------------+------------+-----------------------+---
---------------+--------------+-----------------+------------------+------------------+----------------+-
--------------------+--------------------+------------------+----------+------------+-------------+------
--------+---------------+-------------+-----------------+----------------------+
| localhost | root | *4F9DA9DB95483BFD192C7BF3DB0402555E89360D | Y ? ? ? ? ? | Y ? ? ? ? ? | Y ? ? ? ? ? |
Y ? ? ? ? ? | Y ? ? ? ? ? | Y ? ? ? ? | Y ? ? ? ? ? | Y ? ? ? ? ? ? | Y ? ? ? ? ? ?| Y ? ? ? ? | Y
| Y ? ? ? ? ? ? ? | Y ? ? ? ? ?| Y ? ? ? ? ?| Y ? ? ? ? ? ?| Y ? ? ? ? ?| Y ? ? ? ? ? ? ? ? ? ? | Y
| Y ? ? ? ? ? ?| Y ? ? ? ? ? ? ? | Y ? ? ? ? ? ? ? ?| Y ? ? ? ? ? ? ? ?| Y ? ? ? ? ? ? ?| Y
| Y ? ? ? ? ? ? ? ? ?| Y ? ? ? ? ? ? ? ?| ? ? ? ? ?| ? ? ? ? ? ?| ? ? ? ? ? ? | ? ? ? ? ? ? ?|
0 | ? ? ? ? ? 0 | ? ? ? ? ? ? ? 0 | ? ? ? ? ? ? ? ? ? ?0 |
+-----------+------+-------------------------------------------+-------------+-------------+-------------
+-------------+-------------+-----------+-------------+---------------+--------------+-----------+-------
-----+-----------------+------------+------------+--------------+------------+-----------------------+---
---------------+--------------+-----------------+------------------+------------------+----------------+-
--------------------+--------------------+------------------+----------+------------+-------------+------
--------+---------------+-------------+-----------------+----------------------+
1 row in set (0.00 sec)
后期處理:
/usr/local/mysql/bin/mysqladmin shutdown -uroot -p
剛才的密碼
然后正常啟動:/usr/bin/mysqld_safe &
/usr/local/mysql/bin/mysql -uroot -p
能正常登錄!
官方文檔
[url]http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html[/url]
總結:我這叫總結么?我不知道為啥能成,不過大體就是root無法對庫進行操作。select就能查出來。
然后在安全模式下無法授權,那只能升級下密碼了。這時注意下刷新表。
然后再給root用戶授權。這樣就哦了。
有空的哥們也多研究下。
今早哥們netseek 解決了這個問題:
[url]http://www.linuxtone.org/redirect.php?tid=1142&goto=lastpost#lastpost[/url]
最終解決辦法::
Duplicate entry 'localhost-' for key 1 問題,很可能是你的主機名有問題,比如是localhost?
導致mysql 的root 帳號的三個主機值(分別是%、localhost、主機名)的后二者的名字弄成一樣了,導使唯一鍵值出現重復而禁用該記錄了?
朋友的主機名設置成了:localhost 遭成了Duplicate entry 'localhost-' for key 1
設置好正確的主機名仍后重新編譯就可以了,朋友安裝系統的時候沒有注意主機名
?著作權歸作者所有:來自51CTO博客作者守住每一天的原創作品,如需轉載,請注明出處,否則將追究法律責任
mysql數據庫休閑數據庫
總結
以上是生活随笔為你收集整理的为什么进mysql需要用户和密码了_centos5安装 mysql 提示需要用户及密码进入?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “撸串”都有哪些美食配搭?
- 下一篇: linux忘记mysql的密码忘记了_l