關閉防火牆
(提示:以下命令必須按順序執行,否則會出現不可預知的麻煩!)
登陸到mysql命令行:
mysql -u root -p
進入之后選擇mysql庫,查看user表中的用戶信息
mysql> use mysql
mysql> select host, user, authentication_string, plugin from user; +-----------+------------------+------------------------------------------------------------------------+-----------------------+ | host | user | authentication_string | plugin | +-----------+------------------+------------------------------------------------------------------------+-----------------------+ | localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | | localhost | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | | localhost | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | | localhost | root | $A$005$)C%}|B/O#6> cNUWhdcLdaapuvYsxy2VqkPkMwwU.0AM9tJ1iO5SVr7 | caching_sha2_password | +-----------+------------------+------------------------------------------------------------------------+-----------------------+
修改root用戶的host,刷新修改,賦予權限
mysql> update user set host='%' where user='root'; mysql> flush privileges;
如果防火牆關閉的話root已經可以連接了,我覺得下面這句命令應該是給其它用戶授予的,root本身已經有這些權限 mysql> GRANT ALL ON *.* TO 'root'@'%'; #這個指令的意思是給予用戶名為root主機名為任何的對象在任何庫任何表上的所有權限,我自己理解的
---------------------------------此時我的mysql已經可以在其它機器上用MySql Workbench連接了---------------------------------------
根據需要在使用MySql Workbench建立一些特定用戶
-------比較舊版本的SQLyog和Navicat還需要以下設置:
修改加密規則
注意:執行以下命令一定要在命令行窗口下,用一些客戶端工具會有風險!
先use mysql一下,如果沒有使用如果當前使用的庫不是mysql,然后執行下面語句
mysql> ALTER USER 'root'@'%' IDENTIFIED BY 'yourpassword' PASSWORD EXPIRE NEVER;
更新 root 用戶密碼的驗證方式
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
mysql> FLUSH PRIVILEGES;
---------------------------------------------------------------------------------------------------------------------------------------
創建一般用戶
#1、創建新用戶 mysql> CREATE USER 'username'@'%' IDENTIFIED BY 'userpassword'; #給普通用戶遠程連接的權限: #2、授權 myuser 用戶對指定庫的所有表,所有權限並設置遠程訪問 mysql> GRANT ALL ON 指定庫.* TO 'username'@'%'; #3、更新 該 用戶密碼 mysql> ALTER USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'userpassword'; #4.刷新權限 mysql> FLUSH PRIVILEGES; ok,可以使用一般用戶username了。
刪除用戶
刪除賬戶及權限: mysql>drop user 'username'@'%';