
Linux中安装MySQL以及实现MySQL远程连接
Linux安装MySQL8.0
下载mysql的yum源配置
-
MySQL Yum Repository : https://dev.mysql.com/downloads/repo/yum/
-
选择合适版本后点击
Download
-
鼠标右键复制链接接地址
wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
安装MySQL的yum源
yum -y install mysql80-community-release-el7-7.noarch.rpm
使用yum安装MySQL
yum -y install mysql-server
启动MySQL
systemctl start mysql
查看MySQL临时密码
cat /var/log/mysqld.log| grep password
修改MySQL密码
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
因为初始化密码默认是过期的,所以查看数据库会报错
-
使用临时密码登录MySQL
-
执行:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码' PASSWORD EXPIRE NEVER;
-
刷新权限
flush privileges;
问题
MySQL5.7版本之后加入了全新的密码安全策略,设置的新密码太过于简单会报如下错误:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
可以通过
SHOW VARIABLES LIKE 'validate_password%';
查看策略
关于 mysql 密码策略相关参数
validate_password.length
固定密码的总长度;validate_password.dictionary_file
指定密码验证的文件路径;validate_password.mixed_case_count
整个密码中至少要包含大/小写字母的总个数;validate_password.number_count
整个密码中至少要包含阿拉伯数字的个数;validate_password.policy
指定密码的强度验证等级,默认为 MEDIUM;
取值:
-0/LOW
:只验证长度;
-1/MEDIUM
:验证长度、数字、大小写、特殊字符;validate_password.special_char_count
整个密码中至少要包含特殊字符的个数;
远程连接MySQL
使用工具远程连接时 如果报以下错误1130 - Host '192.168.140.1' is not allowed to connect to this MysQL server
,这是由于Mysql配置了不支持远程连接引起的。
确保网络通常
- 使用
ping ip地址
:保证网络通畅 - 使用
telnet ip地址 端口号
:确保端口开放
telnet
启用方式:
关闭防火墙或 开放端口
-
关闭防火墙
systemctl stop firewalld.service 扩展: #设置开机启用防火墙 systemctl enable firewalld.service #设置开机禁用防火墙 systemctl disable firewalld.service
-
开放端口
- 查看开放的端口
firewall-cmd --list-all
-
设置开放的端口
firewall-cmd --add-service=http --permanent firewall-cmd --add-port=3306/tcp --permanent
-
重启防火墙
firewall-cmd --reload
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘你的密码’ PASSWORD EXPIRE NEVER;
修改MySQL配置
use mysql;
select Host,User from user;
Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。这里的意思就是说root用户只
能通过192.168.1.1的客户端去访问。 user=root Host=localhost,表示只能通过本机客户端去访问。而 %
是个 通配符 ,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连
接。如果 Host=% ,表示所有IP都有连接权限。
注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产
环境的IP进行设置。
** ,并刷新权限**
# 修改Host为通配符%
update user set host = '%' where user ='root';
#刷新权限
flush privileges;
测试连接
连接成功