1. 程式人生 > >MySQL 'root'@'localhost'無法登入

MySQL 'root'@'localhost'無法登入

localhost無法登陸的問題:

由於公司的mysql是用rpm包安裝的,所以會引起很多小疏忽;

問題解決一:

今天早上同事說MySQL root賬號登入不上了。我試了一下 
#mysql -u root -p 
提示”Access denied for user ‘root’@’localhost’ (using password: YES)”

因為年後有同事離職,我第一反應是誰修改了root密碼?按照忘記root密碼來重置一下密碼: 
#/etc/init.d/mysql stop 
#mysqld_safe –skip-grant-tables & 
#mysql -uroot -p 
mysql>update mysql.user set password=password(‘mypassword’) where user=’root’; 
mysql>flush privileges; 
mysql>quit

用新密碼還是無法登入,提示跟上面一樣。換一個非root賬號登入,檢視一下user表: 
mysql> select user,host from user; 
+———–+———+ 
| user   | host | 
+———–+———+ 
| root  | 127.0.0.1 | 
| night | % | 
+———–+———+

懷疑預設的localhost沒有對映到127.0.0.1?試試#mysql -u root -p xxxx -h 127.0.0.1,果然可以登入。 
之前配置資料庫的同學沒有給’root’@’localhost’和’root’@’ip’授權。 
grant all privileges on .

 to ‘root’@’localhost’ identified by ‘mypassword’ with grant option; 
grant all privileges on . to ‘root’@’118.192.91.xxx’ identified by ‘mypassword’ with grant option;


問題解決二:

提示ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO),阻止進入MySQL環境,原因是之前用phpmyadmin,設定了root帳號密碼,解決辦法是:

找到/etc/mysql/my.cnf,在裡面新增幾行程式碼,如下:

原來是這樣:

  1. [client]  
  2. port            = 3306
  3. socket          = /var/lib/mysql/mysql.sock  

新增三行程式碼,變為:

  1. [client]  
  2. host            = localhost        //新增host  
  3. user            = root               //新增使用者名稱  
  4. password        = 123456      //新增密碼  
  5. port            = 3306
  6. socket          = /var/lib/mysql/mysql.sock  
不用重啟mysql(如果不行,還是重啟一下比較好,),直接在終端再次輸入sudo mysql,就直接進入mysql.

以上時博主我從網上收集過來的

[client]
#password       = your_password
port            = 3306
socket          = /tmp/mysql.sock


[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
datadir = /usr/local/mysql/var
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
thread_cache_size = 8
query_cache_size = 8M
tmp_table_size = 16M


#skip-networking
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535


log-bin=mysql-bin
binlog_format=mixed
server-id       = 1
expire_logs_days = 10


default_storage_engine = InnoDB
innodb_data_home_dir = /usr/local/mysql/var
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /usr/local/mysql/var
innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50


[mysqldump]
quick
max_allowed_packet = 16M


[mysql]
no-auto-rehash


[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M


[mysqlhotcopy]
interactive-timeout