Mysql创建用户并授权以及开启远程访问
创建用户并授权
1、登录mysql
mysql -u root -p
2、创建数据库
create database test;//以创建test为例
3、创建用户
创建user01,只能本地访问
create user user01@'localhost' identified by 'password';
创建user02,可以远程访问
create user user02@'%' identified by 'password'
4、修改用户密码
以user01为例:
set password for 'user01'@'localhost'=password('anotherpassword')
5、授权
授予user01管理test的全部权限
grant all privileges on test.* to user01;
授予user02查看权限,并修改密码
grant select on *.* to 'user02'@'%' identified by 'anotherpassword';
授予所有权限
GRANT ALL PRIVILEGES ON *.* TO zhangsan@"%" IDENTIFIED BY "lisi";
8.0版不能直接grant 语法创建用户了;可以在建用户的时候设置密码;或create后再alter修改密码; 然后授权
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxxx';
Query OK, 0 rows affected (0.01 sec)
mysql> use mysql
Database changed
mysql> select host, user, authentication_string, plugin from mysql.user;
+-----------+------------------+------------------------------------------------------------------------+------------------
| host | user | authentication_string | plugin
+-----------+------------------+------------------------------------------------------------------------+------------------
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_pass
| localhost | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_pass
| localhost | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_pass
| localhost | root | $A$005$X Ze/bh?ty wH2lE/FyW4VTakA7Gslux8reGv2eMPPxtxEhf84XFROc2 | caching_sha2_passwo
+-----------+------------------+------------------------------------------------------------------------+------------------
4 rows in set (0.00 sec)
-------------------------------------------------------------------------------------------
查看user表的root用户Host字段是localhost,说明root用户只能本地登录,现在把他改成远程登录
------------------------------------------------------------------------------------------
mysql> update user set host='%' where user='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
=====================================================================================================
MySQL8.0之前的版本密码加密规则:mysql_native_password,
MySQL8.0密码加密规则:caching_sha2_password
不一样
修改mysql加密规则
输入命令
ALTER USER 'root'@'%' IDENTIFIED BY 'xxxxxx' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'xxxxxx';
FLUSH PRIVILEGES;
*****防火墙放行mysql port*****
firewall-cmd --zone=public --add-port=33062/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
firewall-cmd --reload
*****iptables防火墙的自行解决一下*****