开启MySQL支持远程访问连接
1. 先从服务器上使用 root 进行登录
PS:刚安装完默认只能本地登录
# 执行下面命令输入密码,然后回车
mysql -u root -p
# 这里会有些不同,MySQL 安装完后:
# MySQL 5.7 的 root 密码为空,直接回车即可。
# MySQL 8.0 会为 root 一个随机密码,需要去文件中查看。
less /var/log/mysqld.log
2. 修改配置文件,允许远程登录
编辑 MySQL 配置文件,使用以下命令打开配置文件:
sudo vi /etc/my.cnf
在 [mysqld] 部分添加或修改 bind-address 配置项,将其设置为 MySQL 服务器的 IP 地址,如果要允许所有远程访问,则可以将其设置为 0.0.0.0:
bind-address = 0.0.0.0
保存并关闭文件。
重启 MySQL 服务以使更改生效:
sudo systemctl restart mysqld
3. 登录 MySQL 服务器,并授权远程访问的用户
sudo mysql -u root -p
在 MySQL 命令行中执行以下命令(假设远程访问用户为 root,密码为 password):
USE mysql;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
flush privileges;
exit
4. 防火墙开放 MySQL 端口
检查防火墙状态:
sudo systemctl status firewalld
如果防火墙处于关闭状态,可以跳过此步骤。如果防火墙处于运行状态,需要开放 MySQL 服务的端口(默认为3306):
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
#查看端口是否开放
firewall-cmd --list-all
扩展:通过更新host字段值实现远程连接
修改root的host为%表示支持任意主机可以远程连接,host为localhost表示仅本地登录,host为指定的公网IP地址表示仅支持指定的公网IP进行远程访问
Mysql>use mysql;
Mysql> select host,user from user;
Mysql>update user set host='%' where user='root';
Mysql>flush privileges
文章目录
关闭