CentOS7安装mysql5.7 以及安装过程中出现问题的解决办法

一、CentOS 7 安装mysql 5.7

1、先到清华大学镜像站找到想要安装的mysql版本,我使用的是mysql5.7,复制镜像地址(https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql57-community-el7/mysql57-community-release-el7-10.noarch.rpm)
2、安装

#下载
wget https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql57-community-el7/mysql57-community-release-el7-10.noarch.rpm
#本地安装
yum localinstall mysql57-community-release-el7-10.noarch.rpm -y
# 查看yum repository是否安装成功
yum repolist enabled | grep "mysql.*-community.*"
# 下载mysql server
yum install mysql-community-server
# 启动mysql
systemctl start mysqld
# 查看mysql状态
systemctl status mysqld
# 查看临时生成的密码,会显示临时密码,可以使用临时密码登录,然后修改
grep 'temporary password' /var/log/mysqld.log
# 登录mysql
mysql -uroot -p
 Enter password:
 #就登录成功了

3、安装完成并登录成功后,修改数据库密码

#修改数据库密码
#设置的新密码一般要包括大小写英文字母、数字以及特殊符号,要超过8位
ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxx';
#重新登录
mysql -uroot -pxxx!

二、问题的解决

1、解决mysql无法远程连接的问题

 use mysql;
 select host,user from user where user='root'; # 查看host,正常情况,host=localhost
 update user set host='%' where user='root'; #更改host为所有ip
 select host,user from user where user='root'; # 查看更改,此时 host=%

2、问题描述

Error: 1251
Message: Client does not support authentication protocol requested by server; consider upgrading MySQL client

解决方法:

USE mysql;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的数据库密码';
FLUSH PRIVILEGES;

3、解决完以上两个问题后,远程连接会出现

Can't connect to MySQL server on ...

(1)查看mysql服务以及端口占用情况

#查看mysql服务
netstat -tap | grep mysql

在这里插入图片描述
说明mysql服务是处于监听状态的

#查看3306端口占用情况
netstat -apn | grep 3306

在这里插入图片描述
可以看到3306端口也是处于监听状态的

(2) 查看httpd_can_network_connect的值是否为off

getsebool -a | grep httpd

在这里插入图片描述
我的已经是on了,如果是off状态的话:

 #修改httpd_can_network_connect的值为on
 setsebool httpd_can_network_connect 1
 #重新验证httpd_can_network_connect
 getsebool -a | grep httpd
 #重启httpd服务
 systemctl start httpd.service

(3)查看防火墙状态
我尝试ping了一下我的linux系统的IP地址,可以ping成功,但是telnet 3306端口时连接不成功,应该是防火墙的问题

#查看firewall启动情况
systemctl status firewalld 
#启动friewall
systemctl start firewalld 
#开启3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent 
#重启防火墙服务
systemctl restart firewalld.service

再次进行远程连接就能连接成功了。

三、mysql字符编码修改

#登录mysql
mysql -uroot -pXXX(XXX为密码)
#查看mysql字符集
show variables like 'character%';
#character_set_database和character_set_server的默认字符集还是latin1
#将其修改为utf8
#修改mysql的/etc/my.cnf ,在[mysqld]字段里加入character_set_server=utf8
character_set_server=utf8
#重启数据库服务
systemctl restart mysqld
#再次查看mysql字符编码
show variables like 'character%';
#character_set_database和character_set_server的默认字符集就是utf8了

这样在CentOS环境下mysql就安装好了,并且数据库可以实现远程连接。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值