數據庫的操作軟件有很多,在線的話phpmyadmin是非常不錯的軟件,
比較坑爹的是我的一個機器用的是amh的面板,遇到了一件無比郁悶的事.
大家都知道在沒有獨立安裝phpmyadmin的情況下,amh面板的數據庫操作是AMYSQL…
這個軟件。。。怎麼說呢,操作不當,引起的後果可是灰常嚴重的。(其他軟件操作不當也會出大事)
由於想給網站提速,數據庫要遷移到阿裡雲RDS,數據庫的遷移當然最簡單的方法是直接遷移,這裡就需要我們開放源數據庫的遠程連接.
由於安全問題,我們默認的時候把數據庫的鏈接設置的都是本地localhost,那麼我們需要改為%。。OK 無比郁悶的是我在改為%之後,在amysql面板操作的,
竟然直接導致我的root賬號沒有任何權限….直接等於賬號被鎖定。。root沒有任何操作權限。。尼瑪..
對於我這樣的計算機小白來說,這尼瑪讓我淚奔啊,剛開始不知道什麼原因的時候我差點都要回滾磁盤了有木有….
沒辦法,只能自己先折騰了。
———————————————————–
解決辦法: 首先.你要有服務器的root權限,,不然….那還搞什麼啊..
(這裡介紹一個很使用的命令:skip-grant-tables →非常有用的mysql啟動參數)
先停止mysql的運行;這裡建議是正常停止mysql,盡量不要pkill,因為你的pkill可能導致mysqld dead but subsys locked.
如果已經pkill了那就再mysqld status下喽.然後再stop.
然後運行# mysqld_safe –skip-grant-tables &
&,表示在後台運行,不再後台運行的話,就再打開一個終端咯。這個&很實用哦~!
然後mysql進入我們的數據庫,跳過驗證了,也就不必那麼麻煩 直接mysql進入
然後 use mysql;
我們這裡呢介紹下實用update賦予root賬號權限.
update user set Update_priv =’Y’ where user = ‘root';
如果像我這樣沒有了所有權限。。。
更新的MYSQL.USER表的所有字段中為N的為Y就可以了。
update user set Select_priv ='Y' where user = 'root';
update user set Insert_priv ='Y' where user = 'root';
update user set Update_priv ='Y' where user = 'root';
update user set Delete_priv ='Y' where user = 'root';
update user set Create_priv ='Y' where user = 'root';
update user set Drop_priv ='Y' where user = 'root';
update user set Reload_priv ='Y' where user = 'root';
update user set Shutdown_priv ='Y' where user = 'root';
update user set Process_priv ='Y' where user = 'root';
update user set File_priv ='Y' where user = 'root';
update user set Grant_priv ='Y' where user = 'root';
update user set References_priv ='Y' where user = 'root';
update user set Index_priv ='Y' where user = 'root';
update user set Alter_priv ='Y' where user = 'root';
update user set Show_db_priv ='Y' where user = 'root';
update user set Super_priv ='Y' where user = 'root';
update user set Create_tmp_table_priv ='Y' where user = 'root';
update user set Lock_tables_priv ='Y' where user = 'root';
update user set Execute_priv ='Y' where user = 'root';
update user set Repl_slave_priv ='Y' where user = 'root';
update user set Repl_client_priv ='Y' where user = 'root';
update user set Create_view_priv ='Y' where user = 'root';
update user set Show_view_priv ='Y' where user = 'root';
update user set Create_routine_priv ='Y' where user = 'root';
update user set Alter_routine_priv ='Y' where user = 'root';
update user set Create_user_priv ='Y' where user = 'root';
update user set Event_priv ='Y' where user = 'root';
update user set Trigger_priv ='Y' where user = 'root';
權限問題最後要保證“mysql.user”表中 host為“localhost”和“%”都有root的所有權限。
OK啦,如果你想修改下密碼順手再改root的數據庫密碼吧,不過改後記得要修改網站相對應文件啊