mysql 有个很大的问题,就是忘记密码了怎么办,这个在之前遇到了,没有记录,下次遇到再记吧。
这次的需求是从本机连接到远方的mysql(这里把你面前的机器成为本机,安装mysql远程机器称为服务器),真是一段悠远的距离~
数据库内操作 #
- 创建或更新用户的密码:
如果用户已经存在并且你只是想更新其密码,请使用 ALTER USER 语句:
ALTER USER 'root'@'%' IDENTIFIED BY '123456';
如果用户不存在,请使用 CREATE USER 语句:
CREATE USER 'root'@'%' IDENTIFIED BY '123456';
- 授予权限
然后,授予用户所需的权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
- 刷新权限
最后,刷新权限使更改生效:
FLUSH PRIVILEGES;
MySQL配置文件 #
检查MySQL配置文件,确认 bind-address 设置:
确保MySQL服务器的配置文件允许远程连接(例如,/etc/mysql/mysql.conf.d/mysqld.cnf
或 /etc/my.cnf
中的 bind-address 设置为 0.0.0.0 或者服务器的IP地址)。
[mysqld]
bind-address = 0.0.0.0
然后,重启MySQL服务:
sudo systemctl restart mysql
防火墙设置 #
确保防火墙没有阻止3306端口(MySQL默认端口)的连接:
sudo ufw allow 3306
或者使用 iptables 配置:
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
再次尝试连接 #
现在,尝试再次从你的客户端连接到MySQL服务器:
mysql -u root -h 你的IP -p