您好,登錄后才能下訂單哦!
怎么對MySQL用戶的host屬性進行修改?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
當你遠程登錄MySQL時,使用的賬號要有特殊要求。
默認的賬號的host屬性都是localhost,意思是這個賬號只能本地使用,如果要使用某個賬號來遠程登錄,必須將賬號的host屬性值更改成%。
執行的sql語句如下:
update user set host = '%' where user = 'root';
補充:mysql 修改root密碼 修改賬戶登錄host
遠程服務器起了一個mysql服務,里面有個hive賬戶,在遠程服務器能通過命令行用mysql -hlocalhost -uxxx -pxxx的方式登錄,但是用navicat客戶端,怎么也登錄不上,而且navicat顯示的還是我自己機器的ip地址。
初步懷疑,是mysql里的A賬戶密碼沒有設置正確。于是需要用root賬號對hive賬戶重新進行設置。
坑爹的是,mysql也不是我布的。而且測試環境,也不知道該找誰要密碼。那就使出終極武器吧:修改root密碼。
首先注意的一點:mysql的root賬戶與服務器的root賬戶不是同一個概念,不要混為一談。
首先,停掉mysql服務:
sudo service mysql stop
如果有服務器的root賬戶,自然就不用sudo了,下面所有的操作也是一樣。上面的命令適用于Ubuntu和Debian。CentOS、Fedora和RHEL下使用mysqld替換mysql。下面所有的操作也是一樣。
然后,再以安全模式啟動mysql:
sudo mysqld_safe --skip-grant-tables --skip-networking &
這樣我們就可以直接用root登錄,無需密碼:
mysql -u root
這樣,我們就用root賬戶登錄了mysql。
然后,就可以重置root密碼了:
mysql> use mysql; mysql> update user set password=PASSWORD("mynewpassword") where User='root'; mysql> flush privileges;
重置完畢以后,退出mysql。然后再將mysql服務啟動:
sudo service mysql restart
接下來,就是用root賬戶登錄了:
mysql -u root -pmynewpassword
用root賬號登錄mysql以后,接下來看看A賬號的相關信息:
mysql> use mysql; Database changed mysql> select User, Host from user where User='hive'; +------+--------------+ | User | Host | +------+--------------+ | hive | 127.0.0.1 | +------+--------------+
這一下就明白了。尼瑪難怪navicat客戶端登不了。hive賬戶的host只有127.0.0.1,自然只能在本機登錄了。
mysql> update user set Host='%' where User='hive';
將hive賬戶設置為所有機器均可登錄,然后再刷新一下權限:
mysql> flush privileges;
再查看一把:
mysql> select User, Host from user where User='hive'; +------+------+ | User | Host | +------+------+ | hive | % | +------+------+
看完上述內容,你們掌握怎么對MySQL用戶的host屬性進行修改的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。