共計 1908 個字符,預計需要花費 5 分鐘才能閱讀完成。
本篇文章為大家展示了如何解決 mysql 本地和遠程登錄不上的問題,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
mysql 本地登錄不上的問題
本地登錄不上,即忘記了密碼,該如何解決呢?
首先,我們以不檢查權限的方式啟動 mysql,如下:
1/usr/local/mysql/bin/mysqld –skip-grant-tables
然后,就可以直接登錄了,如下:
1 /usr/local/mysql/bin/mysql -u root
最后,修改密碼即可。
1update user set authentication_string=PASSWORD(dequan) where User= root
注意:在 mysql5.7 以及更高版本,使用 authentication_string 字段代替了 Password 字段。
mysql 遠程登錄不上的問題
針對以檢查權限的方式啟動的 mysql,客戶端在以某用戶來登錄 mysql 時,mysql 服務端會檢驗該用戶以及該用戶所在的 ip 是否有操作的權限。mysql 可以基于用戶 ip、數據庫、表、操作類型等維度來進行授權操作,授權的方式有修改 mysql 庫里面的 user 表、執行 mysql 授權語句等。
1、基于修改 user 表來進行授權操作
如果某個 ip 登錄不上,即在 User 表中沒有對該 ip 進行授權。首先,我們看一些 user 表中的一些字段
Host: 127.0.0.1
User: root
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Reload_priv: Y
Shutdown_priv: Y
Process_priv: Y
File_priv: Y
Grant_priv: Y
References_priv: Y
Index_priv: Y
Alter_priv: Y
Show_db_priv: Y
Super_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Execute_priv: Y
Repl_slave_priv: Y
Repl_client_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Create_user_priv: Y
Event_priv: Y
Trigger_priv: Y
Create_tablespace_priv: Y
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
plugin: mysql_native_password
authentication_string: *89E04A681364F578C8E900403166C192A1E8E2B6
password_expired: N
password_last_changed: 2017-08-04 10:27:44
password_lifetime: NULL
account_locked: N
其中,Host 為允許登錄的主機名或是 ip(如果為 %,則代表任意 ip 或是主機),User 登錄用戶,authentication_string 為登錄密碼,*_priv 為響應功能的權限,比如 Select_priv 為讀的權限,Insert_priv 寫入的權限,Update_priv 更新的權限,Delete_priv 刪除的權限。
所以,如果要允許 root 在某個遠程主機 ip1 上面登錄,則需要,改變對應登錄用戶的 Host 字段即可:
update user set host = ip1 where user = root
// 或者
update user set host = % where user = root
最后更新一下權限即可
FLUSH RIVILEGES
2、基于 mysql 授權語句來進行授權操作
當然,mysql 也提供了相應的授權語句,如下:
grant all privileges on db.table to user @ host identified by 密碼 with grant option;
all privileges 代表授予所有的權限,當然我們也可以僅僅授予某些權限。最后在更新一下權限,即可
FLUSH RIVILEGES
上述內容就是如何解決 mysql 本地和遠程登錄不上的問題,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注丸趣 TV 行業資訊頻道。