一、登錄數據庫
[root@localhost ~]# mysql -u root
mysql > show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
+--------------------+
只顯示這個兩個數據庫,看不到mysql數據庫
二、解決方法:
此問題實際上是用戶沒有權限:
1. 關閉mysql: service mysql stop
2. 啟動mysql: mysqld_safe --skip-grant-tables --安全模式啟動 跳過權限表認證
3. 再打開一個ssh連接服務器,進行mysql操作
[root@localhost ~]#mysql
mysql > show databases; 在這個模式下是可以看到mysql用戶數據庫的。
1.如果已經存在了host為localhost的記錄,則先刪除該記錄,delete from user where host='localhost';
2.然后再進行上面的insert操作,注意的是mysql版本的不同,user表的結構會略有差異,插入INSERT INTO `user` VALUES ('localhost','root','','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','Y','Y','N','' ,'','', 0,0,0 , 0,0,'mysql_native_password',0 );
3.操作完成后,將兩個ssh連接都關閉,然后再重新連接一個ssh,啟動mysql:service mysqld start,然后用mysql命令連接mysql數據庫
三、修改后登錄mysql
重新連接一個ssh
[root@localhost ~]#mysql -u root -p
1.密碼為空
2.如果此時還連接不上,再重啟一下mysql就好了,service mysqld restart
3.如果想設置密碼可以更新下 update user set password=password('root') where user='root';
