您的当前位置:首页正文

linux下如何安装mysql5.7(超详细)

2024-11-08 来源:个人技术集锦

一、安装mysql5.7

1.去到mysql官网

2.找到所需的版本

从网上获取数据源:

 wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

安装数据源

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

查看数据源是否成功安装

 ls /etc/yum.repos.d/

这里要注意,在安装完成之后要先查看是否有之前的mysql

 rpm -qa |grep mysql

如果有之前安装过的版本需要全部删除

 rpm -e xxxxxx

开始安装mysql

 yum -y install mysql-community-server

安装完成后,查看mysql是否安装成功

 mysql -V

然后启动mysql服务

 systemctl start mysqld

设置mysql开机自启

systemctl enable mysqld
systemctl daemon-reload

设置mysql的默认编码为utf-8

vi /etc/my.cnf

在[mysqld]下添加如下编码配置,如下所示:

character_set_server=utf8
init_connect='SET NAMES utf8'

查看mysql服务的运行状态

 systemctl status mysqld

刚安装后,不能够直接登陆

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

查看临时密码

使用临时密码登陆

二、登陆

使用临时密码进行登陆后,修改密码!!!!

运行下面指令修改密码为liu123456! (备注 mysql5.7默认密码策略要求密码必须是大小写字母数字特殊字母的组合,至少8位)

 ALTER USER 'root'@'localhost' IDENTIFIED BY 'liu123456!';

如果密码过于简单,可能会出现修改失败

这是因为mysql5.7有对应的密码策略

输入语句 “ SHOW VARIABLES LIKE ‘validate_password%’; ” 进行查看,

 SHOW VARIABLES LIKE 'validate_password%'; #查看密码策略

  • 关于 mysql 密码策略相关参数; 1)validate_password_length 固定密码的总长度; 2)validate_password_mixed_case_count 整个密码中至少要包含大/小写字母的总个数; 3)validate_password_number_count 整个密码中至少要包含阿拉伯数字的个数; 4)validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM; 关于 validate_password_policy 的取值: 0/LOW:只验证长度; 1/MEDIUM:验证长度、数字、大小写、特殊字符; 2/STRONG:验证长度、数字、大小写、特殊字符、字典文件; 5)validate_password_special_char_count 整个密码中至少要包含特殊字符的个数;
  • 这样就可以设置简单密码
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
 
mysql> set global validate_password_length=4;
Query OK, 0 rows affected (0.00 sec)

修改密码的四种方式

a)shell命令行下mysqladmin -uroot -poldpassword password newpassword b)sql命令行下 set password = password(newpassword); c)sql命令行下 update user set authentication_string=password(newpassword) where user=‘root’; d)sql命令行下 alter user root@‘localhost’ identified by ‘newpassword’;//使用随机密码登录,如果要使用数据,查看数据库等操作时mysql会推荐这种写法改变密码。

三、远程连接数据库

MySQL默认是没有开启远程控制的,必须添加远程访问的用户,即默认是只能自己访问,别的机器是访问不了的。

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'liu123' WITH GRANT OPTION;

最后刷新一下权限:

flush privileges;

并且开放防火墙端口(也可以直接关闭防火墙)

如果是云服务器的话,要将安全组的端口也要开放,才可以进行远程访问

firewall-cmd --zone=public --add-port=3306/tcp --permanent
systemctl stop firewalld #关闭防火墙

远程连接成功

四、修改mysql版本

vim/etc/yum.repos.d/mysql-community.repo

\

显示全文