在平時各種各樣的開發中,MySQL是必不可少的工具,直接使用命令行寫sql語句操作,簡單的邏輯處理還可以,如果遇到復雜的問題,簡直不要太麻煩,這里推薦兩個我常用的可視化管理工具
Navicat 和 phpMyAdmin
工具簡單好用易上手,很多小伙伴在連接測試時,發現報1045,以及1130錯誤
Navicat提示的錯誤
SQL Error (1130): Host ‘xxx’ is not allowed to connect to this MySQL server
結合我日常遇到的問題,我簡單統計了一下,常見原因有2點
1,mysql密碼錯誤
2,外部連接沒有設置權限
針對第一點
第一步停止mysql服務
/etc/init.d/mysqld stop
第二步跳過密碼驗證
/usr/bin/mysqld_safe --skip-grant-tables 或者 mysqld_safe --skip-grant-tables
跳過權限表啟動mysql
第三步,新開一個窗口修改新密碼
use mysql;
update user set password=password("new_pass") where user="root";
flush privileges; 注意刷新權限
(flush privileges 命令是將當前user和privilige表中的用戶信息/權限設置從mysql庫中提取到內存里。MySQL 用戶數據和權限有修改后,我們希望在"不重啟MySQL"的情況下直接生效,那么就需要執行這個命令。通常是在修改ROOT帳號的設置后,怕重啟后無法再登錄進來,那么直接flush之后就可以看權限設置是否生效。避免風險)
注意,如果只是忘記密碼,使用上述修改沒有問題,但如果是之前誤操作把localhost記錄刪掉了,那么直接insert into user (user,host) values ('root','localhost') 添加一條,是不行的,因為涉及到了很多權限,這些權限要設置成Y
針對第二點
權限問題很好處理了,直接use mysql ,修改一下即可
update User ser Host = '%' and User = 'root' and Host = 'localhost'
flush privileges
注意,如果是在運營商設置了防火墻安全組白名單之類的,需要把自己的ip和3306端口加進去