各位大大好,有事情請教
是這樣的
我安裝了MySQL server community edition來玩,久未登入就忘了密碼
經過一番搜尋,使用了下列的指令來登入
sudo /usr/local/mysql/support-files/mysql.server stop //停止server
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
----
mysql -u root
UPDATE mysql.user SET authentication_string=PASSWORD("rootpass") WHERE User='root'; #我的server是8.0的
後續還是無法登入,一怒之下就用initial DB的方式重建一個server
可是這時發現initial後的MySQL,連線可以不用帳密就直接進入DB了
有去找過/etc/my.cnf 跟 basedir/my.cnf
這兩個地方都沒有這個檔,想要安裝mysql terminal但是安裝失敗
目前秉持著一定要讓連線可以檢查帳密的堅持下持續嘗試(工作不受影響,單純是自己手賤愛玩弄出來的side-project)
所以問問看各位大神,怎麼把密碼驗證功能開回去?
系統: Mac M1 Montery-12.3
MySQL: 8.0.29-arm64
SELECT user, plugin FROM mysql.user;
看看plugin是否等於mysql_native_password, 如果不是就改回來即可
UPDATE mysql.user SET authentication_string = PASSWORD('rootpass'), plugin = 'mysql_native_password' WHERE User = 'root' AND Host = 'localhost';
謝您,可我想問的是如何將password validation開啟
方法1:在my.cnf中加参數
[mysqld]
plugin-load-add=validate_password.so
#ON/OFF/FORCE/FORCE_PLUS_PERMANENT: 是否使用该插件(及强制/永久强制使用)
validate-password=FORCE_PLUS_PERMANENT
方法2:命令安装
mysql> INSTALL PLUGIN validate_password SONAME 'validate_password.so';
方法3:啟動時使用参數
/usr/sbin/mysqld start --plugin-load='validate_password.so
zcm
前輩,跟你報告一下,上面這三個方法我都沒有用到
那天抱著程序正義的想法,我要 "再" initial 一次以後來建一個my.cnf
結果initial完以後,連線就都要帳密了...
真心不騙我也當場傻掉...
沒有動過任何參數的狀況下
但為什麼之後initial有效,我也拿不出頭緒......
先讓project續go,目前沒辦法重現issue,之後遇到再說了