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 .
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,在裡面新增幾行程式碼,如下:
原來是這樣:
- [client]
- port = 3306
- socket = /var/lib/mysql/mysql.sock
新增三行程式碼,變為:
- [client]
- host = localhost //新增host
- user = root //新增使用者名稱
- password = 123456 //新增密碼
- port = 3306
- socket = /var/lib/mysql/mysql.sock
以上時博主我從網上收集過來的
[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