本篇文章為大家展示了如何解決MySQL本地和遠(yuǎn)程登錄不上的問題,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
創(chuàng)新互聯(lián)專注于??h企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),購(gòu)物商城網(wǎng)站建設(shè)???h網(wǎng)站建設(shè)公司,為??h等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站開發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
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ù)庫(kù)、表、操作類型等維度來進(jìn)行授權(quán)操作,授權(quán)的方式有修改mysql庫(kù)里面的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)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。