百度云 CentOS / 8.1 x86_64 (64bit)
mysql Ver 8.0.21 for Linux on x86_64 (Source distribution)
yum install mysql-server
mysql -V
mysqladmin -u root password ‘new-password‘
#或者
set password for ‘root‘@‘localhost‘ = password(‘new-password‘);
systemctl start mysqld 		#启动mysqld
systemctl stop mysqld		#停止mysqld
systemctl restart mysqld 	#重启mysqld
systemctl enable mysqld 	#设置开机启动
systemctl status mysqld 	#查看 MySQL Server 状态
mysql -u root -p
%代表所有,默认的localhost只能在本机访问.
#设置用户root可以在任意IP下被访问:
grant all privileges on . to root@"%" identified by "密码";
#或者
update user set host = ‘%‘ where user = ‘root‘;
刷新权限
flush privileges;
其实就是改了数据库mysql下user表的字段值

root用户权限很大,用sqlyog之类的第三方连接或者平时写代码时用个小权限的用户就好了.
8.1 语法
GRANT privileges ON dbname.tablename TO ‘username‘@‘host‘
privileges
用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
dbname
数据库名
tablename
表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示
8.2 示例
#创建用户
CREATE USER ‘username‘@‘%‘ IDENTIFIED BY ‘password‘;		
#用户授权
GRANT SELECT, INSERT ON db01.table01 TO ‘username‘@‘%‘;
GRANT ALL ON *.* TO ‘username‘@‘%‘;
GRANT ALL ON maindataplus.* TO ‘username‘@‘%‘;
#刷新权限
flush privileges;
能否授权也是个权限,如果想让该用户可以授权,用以下命令:
GRANT privileges ON dbname.tablename TO ‘username‘@‘%‘ WITH GRANT OPTION;

原文:https://www.cnblogs.com/yang37/p/14008742.html