Centos安装MySQL5.7.42并配置远程登录

Centos安装MySQL5.7并配置远程登录

系统版本:CentOS Linux release 7.3.1611

预装MySQL版本:MySQL5.7.42

纯净环境安装,安装前系统空空

下载源配置和安装

# import the latest MySQL GPG key to your system.
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 
# configure the Yum repository
sudo yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm 
# install 
sudo yum install mysql-community-server

系统设置

sudo systemctl start mysqld 
# 开机自启动
sudo systemctl enable mysqld
# 查看初始密码
grep 'A temporary password' /var/log/mysqld.log |tail -1 

在修改root密码之前,先修改原本的密码安全策略,否则设置的密码要很复杂。这里有两种方式,要么使用初始密码登录进数据库修改:

mysql> set global validate_password_policy=0;

为了以后新建用户着想,还是建议写在配置文件中,检查路径/etc/my.cnf、/etc/mysql/my.cnf、/etc/mysql/mysql.conf.d/mysqld.cnf,找到[mysqld]配置,在下方添加

validate_password_policy=0

然后运行如下安装程序进行数据库初始化、修改root密码

/usr/bin/mysql_secure_installation 

运行完成后应该可以本地正常登录

配置远程登录

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

可以观察到以下变化:

image-20230707215534381

远程连接不上排错

  1. 首先确认使用的用户有远程权限,比如上述的root用户就配置了远程连接权限

  2. 再通过netstat -nltp命令观察开放的端口以及监听ip(yum install net-tools下载)
    如下图,在::;3306端口上监听,这意味着监听了所有ip的连接,如果显示的是127.0.0.1:3306监听,则只监听了本地连接,需要查看配置文件中是否有bind-address字段设置为127.0.0.1,可以将改行删除或者改为0.0.0.0
    image-20230707215725020

  3. 如果监听的端口和ip没有问题,大概率就是防火墙问题
    centos使用firewall防火墙,可以查看服务是否开启,如果在比较安全的环境里可以直接关闭防火墙,或者添加通向3306端口的连接规则(如果没有的话),如下命令:

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

额外事项

有一些mysql配套应用(如tpcc-mysql压测)需要使用mysql.h包,所以建议额外安装devel包

sudo yum install mysql-devel
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值