CentOS7.4 RPM方式安装mysql5.7

160 阅读2分钟

这是我参与11月更文挑战的第6天,活动详情查看:11月更文挑战

1.准备文件

   官网下载mysql-5.7.23-1.el7.x86_64.rpm-bundle.tar, 安装的是5.7版本

   附上文件百度云地址:链接: pan.baidu.com/s/1ymj2BsbS…提取码: s296 

2. 如果是第一次安装mysql需要卸载系统自带的mysql,并且卸载冲突的RPM组件

   卸载系统自带的mysql  

 yum remove mysql-libs

    卸载冲突的RPM组件

    在我们安装mysql相关组件的时候,如果不将此冲突的组件删除掉,我们是安装不成功的。 
我们可以先跳过这步,直接进入下步操作,在安装的过程中会有相应的提示。下面是我所碰到的一个提示:

# 安装mysql组件时出现的依赖错误
error: Failed dependencies:
        mysql-community-common(x86-64) >= 5.7.9 is needed by mysql-community-libs-5.7.19-1.el7.x86_64
        mariadb-libs is obsoleted by mysql-community-libs-5.7.19-1.el7.x86_64

# 卸载mariadb-libs时出现的依赖错误
error: Failed dependencies:
        libmysqlclient.so.18()(64bit) is needed by (installed) postfix-2:2.10.1-6.el7.x86_64
        libmysqlclient.so.18(libmysqlclient_18)(64bit) is needed by (installed) postfix-2:2.10.1-6.el7.x86_64

   可以看出,我们需要卸载postfix和mariadb-libs相关的组件。卸载我们可以使用rpm -ev xxx。

  查看postfix和mariadb-libs

rpm -qa | grep postfix
rpm -qa | grep mariadb

  执行过程

[root@localhost software]# rpm -qa | grep postfix
postfix-2.10.1-6.el7.x86_64

[root@localhost software]# rpm -qa | grep mariadb
mariadb-libs-5.5.52-1.el7.x86_64

  卸载postfix和mariadb-libs

rpm -ev postfix-2.10.1-6.el7.x86_64
rpm -ev mariadb-libs-5.5.52-1.el7.x86_64

  执行过程

[root@localhost software]# rpm -ev postfix-2.10.1-6.el7.x86_64
Preparing packages...
postfix-2:2.10.1-6.el7.x86_64
[root@localhost software]# rpm -ev mariadb-libs-5.5.52-1.el7.x86_64
Preparing packages...
mariadb-libs-1:5.5.52-1.el7.x86_64

3. 解压和安装  

  tar -xvf mysql-5.7.23-1.el7.x86_64.rpm-bundle.tar

  rpm -ivh mysql-community-common-5.7.23-1.el7.x86_64.rpm

 rpm -ivh mysql-community-libs-5.7.23-1.el7.x86_64.rpm

  rpm -ivh mysql-community-client-5.7.23-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-5.7.23-1.el7.x86_64.rpm

    注意这些是有安装顺序的

4.配置mysql

在vi /etc/my.cnf里 加入 skip-grant-tables

vim /etc/my.cnf

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

skip-grant-tables

在配置文件中加入skip-grant-tables,就可以无密码登陆mysql

skip-grant-tables

修改后保存,重启mysql服务

systemctl mysqld restart

或者    

service mysqld restart

5. 修改密码(也可参照参考文献2的方法)

   登陆之后,可以先使用 show databases 看下mysql是否安装正确

  先修改密码: 

update user set authentication_string=password('123456') where user="root";

  退出,将之前的skip-grant-tables删掉 或 注释掉,再登陆:

mysql –u root –p   

  --->输入密码

然后

     本地登录密码设置

 ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; 

注:如果密码设置为“123456”的话,可能会提示太简单,错误信息如下:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

可以先修改密码规则:

set global validate_password_policy=0;
set global validate_password_length=1;

远程登陆密码设置:

   use mysql;

   grant all privileges on *.*  to  'root'@'%' identified by  '123456';  

   flush privileges;

6. 打开端口(设置防火墙)

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

7. 添加字符集

在/etc/my.cnf 文件f 文件 [mysqld]下面添加:

character-set-server = utf8

collation-server = utf8_general_ci

重启

systemctl mysqld restart

8. 测试是否成功

mysql -u root -h -h 主机地址 -p  -p  密码 

show variables like 'character%'


如果你的服务器可以联网,yum方式安装操作可能更简单一点,可以参考我的另一篇mysql安装教程:

CentOS7 yum方式 安装MySQL5.7

此外,mysql还可以编译安装,此方式略复杂,具体可以参考:

Linux学习笔记34——编译安装mysql_苏云南雁的博客-CSDN博客


参考文献:1、CentOS7.2 安装mysql_lsh894609937的专栏-CSDN博客

                  2、MySQL5.7 安装 - Linux下RPM方式安装_番薯IT的专栏-CSDN博客