关于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;
,若对应用户名出现%
即授权成功!