侧边栏壁纸
  • 累计撰写 11 篇文章
  • 累计创建 15 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

Linux中安装MySQL以及实现MySQL远程连接

Pone
2022-10-31 / 0 评论 / 0 点赞 / 34 阅读 / 852 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-10-31,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

Linux安装MySQL8.0

下载mysql的yum源配置

  1. MySQL Yum Repository : https://dev.mysql.com/downloads/repo/yum/

  2. 选择合适版本后点击 Download

  3. 鼠标右键复制链接接地址image-20221031095057983

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 

image-20221031095422815

启动MySQL

systemctl start mysql

查看MySQL临时密码

cat /var/log/mysqld.log| grep password

image-20221031095640063

修改MySQL密码

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

因为初始化密码默认是过期的,所以查看数据库会报错

  1. 使用临时密码登录MySQL

  2. 执行:

    ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码' PASSWORD EXPIRE NEVER;
    
  3. 刷新权限

    flush privileges;
    

问题

MySQL5.7版本之后加入了全新的密码安全策略,设置的新密码太过于简单会报如下错误:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

可以通过SHOW VARIABLES LIKE 'validate_password%';查看策略

image-20221031102139472

关于 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配置了不支持远程连接引起的。

image-20221031100930238

确保网络通常

  1. 使用ping ip地址:保证网络通畅
  2. 使用telnet ip地址 端口号 :确保端口开放

telnet启用方式:

image-20221031101407700

image-20221031101453801

image-20221031101524285

关闭防火墙或 开放端口

  • 关闭防火墙

    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;

image-20221031103815825

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;

image-20221031104022132

测试连接

连接成功

image-20221031104151203

0

评论区