mysql8 修改权限_MySQL8修改重置root密码,远程连接权限设置
MySQL8 修改重置root密碼
這里要單獨強調是MySQL8,因為在MySQL 8.04前,執行:SET PASSWORD=PASSWORD('[新密碼]');可行,但是MySQL8.0.4開始,這樣默認是不行的。因為之前,MySQL的密碼認證插件是“mysql_native_password”,而現在使用的是“caching_sha2_password”。
MySQL8修改root密碼
# mysql -u root -p '原來的密碼'
mysql> use mysql;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';
mysql> FLUSH PRIVILEGES;
1
2
3
4
# mysql -u root -p '原來的密碼'
mysql>usemysql;
mysql>ALTERUSER'root'@'localhost'IDENTIFIEDWITHmysql_native_passwordBY'新密碼';
mysql>FLUSHPRIVILEGES;
MySQL8重置root密碼
MySQL8忘記root密碼如何重置?步驟:
編輯:/etc/my.cnf,在最后加上如下語句 并保持退出文件;
skip-grant-tables
1
skip-grant-tables
重啟mysql服務
service mysqld restart
1
servicemysqldrestart
現在可以免密碼登錄到mysql上;直接在命令行上輸入:
# mysql
mysql> use mysql;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';
mysql> FLUSH PRIVILEGES;
1
2
3
4
#mysql
mysql>usemysql;
mysql>ALTERUSER'root'@'localhost'IDENTIFIEDWITHmysql_native_passwordBY'新密碼';
mysql>FLUSHPRIVILEGES;
退出mysql,刪除/etc/my.cnf文件最后的 skip-grant-tables 重啟mysql服務。
MySQL8遠程連接權限設置
登錄mysql,你可以用ssh或GUI工具都行,我這里以命令行示例,首先查看當前root用戶相關信息,在mysql數據庫的user表中:
# mysql -u root -p *****
mysql> select host, user, authentication_string, plugin from user;
1
2
#mysql-uroot-p *****
mysql>selecthost,user,authentication_string,pluginfromuser;
host:允許用戶登錄的ip‘位置’%表示可以遠程;
user:當前數據庫的用戶名;
authentication_string:用戶密碼,在mysql 5.7.9以后廢棄了password字段和password()函數;
plugin:密碼加密方式;
我們看host和user兩列,host和user中root對應的值為localhost,即root用戶的訪問權限為localhost,想把該用戶的訪問權限設置可遠程連接,我們只需要把localhost更改為通配的%就可以了。上面的權限操作語句沒有走通,這里就直接使用update語句來更改吧。
update user set host = "%" where user = "root";
1
updateusersethost="%"whereuser="root";
注意事項
有的時候我們設置了%但發現還是不能訪問,請檢查你的端口是否打開了,還有你連接的工具的密碼加密方式是否選對了,再適當的進行調整就可以。
總結
以上是生活随笔為你收集整理的mysql8 修改权限_MySQL8修改重置root密码,远程连接权限设置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 主存和cache每一块相等_笔记:cpu
- 下一篇: mysql enum_MySQL数据库中