共計(jì) 1908 個(gè)字符,預(yù)計(jì)需要花費(fèi) 5 分鐘才能閱讀完成。
本篇文章為大家展示了如何解決 mysql 本地和遠(yuǎn)程登錄不上的問題,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
mysql 本地登錄不上的問題
本地登錄不上,即忘記了密碼,該如何解決呢?
首先,我們以不檢查權(quán)限的方式啟動(dòng) 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 遠(yuǎn)程登錄不上的問題
針對(duì)以檢查權(quán)限的方式啟動(dòng)的 mysql,客戶端在以某用戶來登錄 mysql 時(shí),mysql 服務(wù)端會(huì)檢驗(yàn)該用戶以及該用戶所在的 ip 是否有操作的權(quán)限。mysql 可以基于用戶 ip、數(shù)據(jù)庫、表、操作類型等維度來進(jìn)行授權(quán)操作,授權(quán)的方式有修改 mysql 庫里面的 user 表、執(zhí)行 mysql 授權(quán)語句等。
1、基于修改 user 表來進(jìn)行授權(quán)操作
如果某個(gè) ip 登錄不上,即在 User 表中沒有對(duì)該 ip 進(jìn)行授權(quán)。首先,我們看一些 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 為允許登錄的主機(jī)名或是 ip(如果為 %,則代表任意 ip 或是主機(jī)),User 登錄用戶,authentication_string 為登錄密碼,*_priv 為響應(yīng)功能的權(quán)限,比如 Select_priv 為讀的權(quán)限,Insert_priv 寫入的權(quán)限,Update_priv 更新的權(quán)限,Delete_priv 刪除的權(quán)限。
所以,如果要允許 root 在某個(gè)遠(yuǎn)程主機(jī) ip1 上面登錄,則需要,改變對(duì)應(yīng)登錄用戶的 Host 字段即可:
update user set host = ip1 where user = root
// 或者
update user set host = % where user = root
最后更新一下權(quán)限即可
FLUSH RIVILEGES
2、基于 mysql 授權(quán)語句來進(jìn)行授權(quán)操作
當(dāng)然,mysql 也提供了相應(yīng)的授權(quán)語句,如下:
grant all privileges on db.table to user @ host identified by 密碼 with grant option;
all privileges 代表授予所有的權(quán)限,當(dāng)然我們也可以僅僅授予某些權(quán)限。最后在更新一下權(quán)限,即可
FLUSH RIVILEGES
上述內(nèi)容就是如何解決 mysql 本地和遠(yuǎn)程登錄不上的問題,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道。