阿里云centos7安装msyql5.7超级超级巨大巨大的坑

安装

1、注意:安装msyql前务必卸载cenos自带的mariadb,否则会报错
在这里插入图片描述
查询是否已安装mariadb

rpm –qa | grep mariadb

已安装彻底卸载:

rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

2、去msyql官网下载对应的rpm包
common、lib、 client、 server,后边依赖前边,要依次安装
在这里插入图片描述
rpm –ivh 对应rpm包名

3、安装server,可能会提示:
libaio.so.1()(64bit) is needed by mysql-community-server-5.7.27-1.el7.x86_64
运行:

yum install libaio

之后再次运行rpm –ivh mysql命令

4、查看是否安装成功
rpm -qa | grep mysql 或者 yum list installed | grep mysql
5、启停msyql
启动mysql

systemctl start mysqld.service

查看mysql状态

systemctl status mysqld.service

关闭mysql

systemctl stop mysqld.service

安装成功后,登录mysql修改root密码

1、需要先把安装时生成的临时密码查询出来

grep 'temporary password' /var/log/mysqld.log

查询安装mysql初始密码
2、使用初始密码登录后,修改root用户的密码
好气呀!最大的坑就在这儿呢!
刚开始用的这条sql修改的密码:

alter user 'root'@'localhost' identified by '密码,必须包含大写、小写、数字、符号';  
修改之后,为了让修改起作用,切记要运行以下sql:
	flush privileges;

设置允许root用户远程连接,%代表允许从任何主机用root连接mysql

grant all privileges on *.* to 'root' @'%' identified by ' 你的密码' with grant option;
flush privileges;

退出,用上边修改的密码登录mysql,成功了,看着好像大功告成啦!
但是,后来用navcat远程连接mysql时却总是提示:
ERROR 1045 (28000): Access denied for user ‘root’@‘登录电脑的ip’
欲入坑切往下看–远程连接

远程连接mysql

我这次是在阿里云的CES服务器上安装的mysql,为了平时CRUD方便,第一时间就要用navcat进行远程连接。为了能连接成功,需要满足4个条件:
1. mysql允许的 Host 是 %
即允许远程登录mysql,下边的sql就是授予root用户远程登录权限,上文修改密码时已经设置过。

grant all privileges on *.* to 'root' @'%' identified by ' 你的密码' with grant option;
flush privileges;

可以查看下用户和允许登陆的主机:

select host,user from user;

在这里插入图片描述
2.服务器防火墙允许访问3306端口
centos7有iptables和firewall两种防火墙默认都是关闭的,需要手动启动,推荐firewall这种方式,而且很好设置。

systemctl  start   firewalld.service	#启动防火墙
systemctl  stop   firewalld.service	#停止防火墙
systemctl enable firewalld.service	 #设置防火墙开机启动
firewall-cmd --state	#查看状态,如果没启动需要先启动
firewall-cmd --list-ports	#查看哪些端口被放行
firewall-cmd --zone=public --add-port=80/tcp –permanent	
firewall-cmd --zone=public --add-port=3306/tcp --permanent		#增加要放行的端口
firewall-cmd --reload 	#增加放行端口后,使最新的防火墙设置规则生效。

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

如下图,把80、3306端口放行:
在这里插入图片描述
3. 确保 bind-address 正确配置, 路径 /etc/my.cnf

vim /etc/my.cnf

如果查看mysql配置文件看到如下图所示,就不用改了
如果有:bind-address=127.0.0.1需要注释,这样只能本地连接
在这里插入图片描述
4、在阿里云CES实例的安全组策略中放行3306端口
在这里插入图片描述

最后的大坑

远程登录时,总是报错:
*ERROR 1045 (28000): Access denied for user ‘root’@'登录电脑的ip’ *
查了无数资料,不行
把服务器整个还原又重装msyql,还是无法连接,说多了都是泪呀!
最后,偶然情况下运行了下边的修改密码的sql:

update mysql.user set authentication_string=password('密码') where user='root'

再次连接,竟然就成了,午夜12点之前莫名其妙的就成了,于是某猿热泪盈眶,趁热写出了这些肺腑之言。
切记,切记,切记!!!
5.7以后必须要用下边这种方式修改密码才能远程登录:否则只能本地登录

update mysql.user set authentication_string=password(‘密码’) where user=‘root’

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值