Linux安装MySQL5.7

一.检查系统

cat /etc/redhat-release

是否安装mysql

systemctl status mysqld.service

二.安装MySQL

1.下载MySQL官方的Yum Repository

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

2. 安装Yum Repository

yum -y install mysql57-community-release-el7-10.noarch.rpm

3. 在线安装MySQL

yum -y install mysql-community-server

报错

解决办法: 先执行 yum module disable mysql,然后再执行 yum -y install mysql-community-server

4、卸载Yum Repository

由于每次 yum 操作都会自动更新,需要把这个卸载掉

yum -y remove mysql57-community-release-el7-10.noarch

三.配置MySQL

1. 查看MySQL状态

systemctl status mysqld.service

2. 启动MySQL

systemctl start mysqld.service

3. 登录MySQL

此时MySQL已经开始正常运行,不过想要登录MySQL还得先找出此时root用户的密码

grep "password" /var/log/mysqld.log


临时密码是 Ej>!tp029FGv

修改root 密码

mysql -u root –p

必须修改默认密码之后才能操作数据库,密码设置必须包含大小写字母、数字和特殊字符,不然修改密码失败

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MySQL%57';  // MySQL%57处填新密码

四.开启MySQL远程访问

执行以下命令开启远程访问限制(注意:下面命令开启的是%代表所有用户,如要开启某一个IP,用IP代替%

grant all privileges on *.* to 'root'@'%' identified by 'MySQL%57' with grant option;

执行刷新命令

flush privileges;

退出

exit

四.在防火墙中添加3306端口

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

五.修改配置文件

登录MySQL,

mysql -u root -p // 输入自己设置的密码

输入status,发现服务器的字符编码是latin1

需要将字符编码修改为utf8

修改配置文件my.cnf

查找my.cnf所在目录

记得先退出mysql exit

find / -name my.cnf

使用vim打开my.conf文件,新增以下四行代码

[client]
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci

:wq保存

保存my.cnf后,重启MySQL

登录MySQL,查看status,可以看到字符集编码已经成功修改为utf8

六.远程测试

阿里云ECS服务器需要添加安全组规则,开启3306端口才可以远程连接MySQL

在本地Windows下远程连接MySQL,连接成功


使用Navicat测试,连接成功

报错:

1045错误

本地Navicat连接远程服务器的数据库出现1045-Access denied for user ‘root’@‘localhost’(using password:YES) 问题。并非一定是密码错误问题,

也可能是数据库MySQL表的用户权限问题。记录一下踩坑过程,以后方便配置。

解决:

1.mysql -u root -p  // 登录服务器
2.update user set host = '%' where user ='root'; // 允许远程机器连接

又出现一个错误: ERROR 1046 (3D000): No database selected //意思是说没有选种数据库.

3.create database;   // 首先要建立数据库,在将表放入数据库中:
// 修改权限
4.GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '******' WITH GRANT OPTION;//****是你数据库的
5.flush privileges;  //立即刷新权限


原文地址:https://www.cnblogs.com/cl1998/p/14555611.html