其中 我的SQL 主机地址代表的是 MySQL 所在的主机ip地址
端口的话 如果是虚拟机部署MySQL需要与本机进行端口映射,在user-》34905-》中的Vagrantfile进行配置
并且需要关闭防火墙。
1. 首先使用命令连接数据库
docker exec -it mysql bash(因为我是用docker部署的mysqk)
然后使用命令连接mysql
mysql -uroot -p
输入密码(一般默认)
此时可以查看本地的mysql
use mysql;
使用命令来查看root用户是否开放远程连接
select user,host from user;
如果root对应的是%,则开启远程连接。
如果root对应的是localhost,则是只能本地连接。
当我们想要远程连接时,我们可以使用命令更改root权限,其中%代表开启远程连接,非本地端口也可以连接。
1. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
(比较适用于新创建root)
2. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Admin123@qwe' WITH GRANT OPTION
(适用于已创建root)
修改密码
alter user root@'%' identified with mysql_native_password by '123456';
——————————————————————————————————————————
如果我们忘了密码,可以在my.cnf 中进行配置,跳过密码验证,在[mysqld]选项下面
skip-grant-tables #登陆时跳过权限检查
然后重启mysql服务
sudo systemctl restart mysqld
登录mysql,输入 mysql -uroot -p; 直接Enter 进入mysql
并使用数据库mysql
use mysql;
使用命令进行重置密码
update user set password=password(‘新密码’) where user=’root’; (暂时无效)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newPassword'; (有效)
其中,localhost是root的权限,如果是开启远程连接,则使用 % 来替代localhost
然后可以按照上面步骤来进行修改root权限。
如何有报错,我们可以使用命令来更新操作
flush privileges;
——————————————————————————————————————————
防火墙权限
查看防火墙状态
systemctl status firewalld
关闭防火墙
systemctl stop firewalld