CentOS 7.2 安装MYsql5.7.18

时间:2022-08-12 10:23:54

本文使用MySQL-5.7.18。操作系统为64CentOS Linux release 7.2.1511 (Core),以桌面形式安装。


卸载MariaDB

CentOS7默认安装MariaDB而不是MySQL,而且yum服务器上也移除了MySQL相关的软件包。因为MariaDBMySQL可能会冲突,故先卸载MariaDB

 

1.查看已安装的MariaDB相关rpm包。

rpm -qa | grep mariadb

2.查看已安装的MariaDB相关yum包,包名需根据rpm命令的结果判断。

yum list mariadb-libs

3.移除已安装的MariaDB相关yum包,包名需根据yum list命令的结果判断。此步骤需要root权限。

yum remove mariadb-libs

 

下载MySQL rpm

 

由于软件包很大,可以先用其他方式(如迅雷)下载。使用rpm方式,还可在无法联网的条件下安装——这是yum无法做到的。如需安装其他版本的MySQL,请自行到官网搜索相应的rpm下载链接。

wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar

 

使用rpm包安装MySQL

 

以下步骤需要root权限。且因包之间的依赖关系,各rpm命令必须按序执行。

mkdir mysql-5.7.18

tar -xv -f mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar -C mysql-5.7.18

cd mysql-5.7.18/

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

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

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

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

 

出现的问题:
1)libaio.so.1()(64bit) is needed by MySQL-server
     解决方案:
            安装libaio-0.3.107-10.el6.x86_64.rpm
            ①下载地址:
               
            ②执行: rpm -ivh libaio-0.3.107-10.el6.x86_64.rpm

2)net-tools is needed
   解决方案:
       yum install net-tools

3)perl(Getopt::Long) 被 mysql-community-server-5.7.18-1.el7.x86_64 需要
   解决方案:
        yum install perl

安装成功后,删除安装文件和临时文件,也可以不删除。

(如果删除执行如下)

cd ..

rm -rf mysql-5.7.18

rm mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar

 

修改MySQL初始密码

 

以下步骤需要root权限。

 

1.由于一开始并不知道密码,先修改配置文件/etc/my.cnfMySQL跳过登录时的权限检验。加入一行:

skip-grant-tables

 

 

2.重启MySQL

service mysqld restart

 

 

3.免密码登录MySQL

mysql

 

 

4.mysql客户端执行如下命令,修改root密码。

use mysql;

UPDATE user SET authentication_string = password('your-password') WHERE host = 'localhost' AND user = 'root';

quit;

 

5.修改配置文件/etc/my.cnf删除此前新增那一行skip-grant-tables,并重启MySQL。这一步非常重要,不执行可能导致严重的安全问题。

 

6.使用刚刚设置的密码登录。

mysql -u root -p

 

 

7.MySQL会强制要求重新修改密码,且不能为简单规则密码。

ALTER USER root@localhost IDENTIFIED BY 'your-new-password';