【详细/亲测】CentOS7安装好Mysql,实现远程登陆和访问之前要做的准备!

关于CentOS7安装Mysql网上比比皆是,这里列举几个笔者亲自使用比较有效的安装网址:
菜鸟教程|MySql的安装:https://www.runoob.com/mysql/mysql-install.html
MySql官网(Chapter 7 Installing MySQL on Linux):https://dev.mysql.com/doc/mysql-installation-excerpt/5.7/en/linux-installation.html

一、修改host访问权限

1.不开启导致Navicate无法连接远程数据库

2.开启方法

Navicat远程连接Mysql
 默认的账号的host属性都是localhost,意思是这个账号只能本地使用,如果要使用某个账号来远程登录,必须将账号的host属性值更改成%。

select user,host from user;

在这里插入图片描述
 修改远程可访问权限。直接执行下列语句,可能会报错,是因为此处有多个root用户纪录在USER表中,执行完毕后,其实已经修改成功,需要select host from user where user = 'root';查看一下host是否已经有了%这个值,有了就可以了.

update user set host = '%' where user = 'root';
select host from user where user = 'root';

在这里插入图片描述

二、防火墙开放3306端口

开启防火墙:

systemctl start firewalld.service

开放端口:

firewall-cmd --zone=public --add-port=3306/tcp --permanent
#--zone #作用域 
#--add-port=80/tcp #添加端口,格式为:端口/通讯协议 
#--permanent #永久生效,没有此参数重启后失效

重启防火墙:

systemctl restart firewalld.service 

查看端口号是否开启,运行命令:

firewall-cmd --query-port=3306/tcp

查看已经开放的端口:

firewall-cmd --list-ports  

在这里插入图片描述

三、允许其他主机连接Mysql

1.不开启在进行数据库访问时会报错:

java.sql.SQLException: null, message from server: "Host '39.183.134.149' is not allowed to connect to this MySQL server"

2.解决方法

 通常我们以root用户的身份在MySQL中进行了所有编辑,并具有对所有数据库的完全访问权限。但是,这样是不安全的,在可能需要更多限制的情况下,可以使用一些方法来创建具有自定义权限的用户。
(1)创建一个用户,这里创建为alvin

#alvin为用户名  %为所有地址可访问  123456为设置密码
CREATE USER 'alvin'@'%' IDENTIFIED BY '123456';

(2)给该用户授权远程访问权限,其中123456为设置密码

grant all privileges on *.* to 'alvin'@'%' identified by '123456' with grant option;

执行select user,host from user;,若对应用户名出现%即授权成功!
在这里插入图片描述

发布了71 篇原创文章 · 获赞 102 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/qq_44717317/article/details/104116290