zoukankan      html  css  js  c++  java
  • CentOS7入门_安装并配置mysql5.7.18

    1. 下载mysql5.7 

    mysql的官方下载地址

     

    打开之后我们选择对应的系统版本进行下载,之后选择nothanks,不登陆直接下载(如果只是搭建最基本的的mysql的server只需要下载上图4个基本rpm文件即可):

    如果你的linux系统可以直接上网,那么可以直接复制下面的命令执行,即可在当前目录下载mysql。

    服务器端下载:

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

    客户端下载:

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

    lib下载:

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

    common下载:

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

    嫌麻烦的童鞋可以直接下载第一个rpm-bundle(集合版)可以一劳永逸,这里我也给出下载地址:

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

    下载完成后,首先需要我们看一下4个包的依赖关系。

    mysql-community-common-5.7.18-1.el7.x86_64.rpm
    mysql-community-libs-5.7.18-1.el7.x86_64.rpm           --(依赖于common)
    mysql-community-client-5.7.18-1.el7.x86_64.rpm         --(依赖于libs)
    mysql-community-server-5.7.18-1.el7.x86_64.rpm         --(依赖于client、common)

    我们依次执行安装命令:

    rpm -ivh mysql-*.rpm

    出现了如下错误:

    error: Failed dependencies:
    libnuma.so.1()(64bit) is needed by mysql-community-server-5.7.18-1.el7.x86_64
    libnuma.so.1(libnuma_1.1)(64bit) is needed by mysql-community-server-5.7.18-1.el7.x86_64
    libnuma.so.1(libnuma_1.2)(64bit) is needed by mysql-community-server-5.7.18-1.el7.x86_64

    通过读错误信息我们可以看出是缺少了依赖,经过我的研究发现是缺少了numactl.rpm,我在centos7安装镜像的package目录中提取三个numactl.rpm文件,

    把三个文件复制至同一文件夹下,使用通配符安装目录下所有rpm文件:

    rpm -ivh numactl-*.rpm 

    如果找不到numactl.rpm文件,但是你的linux可以联网的话也已使用包管理器yum安装:

    yum install numactl

    numactl.rpm安装完成之后我们又看到如下错误:

    error: Failed dependencies:
        mariadb-libs is obsoleted by mysql-community-libs-5.7.18-1.el7.x86_64

    这是因为centos7 已经不支持mysql,所以内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb。

    列出所有被安装的rpm package 

    rpm -qa | grep mariadb

    卸载 mariadb

    rpm -e mariadb-libs-5.5.35-1.el7_0.x86_64

    错误:依赖检测失败:

    libmysqlclient.so.18()(64bit) postfix-2:2.10.1-6.el7.x86_64 
    libmysqlclient.so.
    18(libmysqlclient_18)(64bit) postfix-2:2.10.1-6.el7.x86_64

    这时我们忽略依赖,强制卸载,加上 --nodeps

    rpm -e --nodeps mariadb-libs-5.5.37-1.el7_0.x86_64

    卸载完毕后重新安装mysql

    rpm -ivh mysql-*.rpm

    最后检查(注意大小写)

    rpm -qa | grep mysql

    有如下提示说明安装成功

    1. 配置mysql

     安装完毕之后我们就可以尝试登录mysql数据库了,但是当我运行mysql的时候又发生了意外,

    经过我的初步判断应该是mysql的服务没有启动,我们查询一下mysql的状态

    service mysqld status  --注意此处是 mysqld

    果然不出我所料,下面我们启动mysql的服务

    service mysqld start

    再次查询mysql的状态

     

    我们发现mysql的服务已经处于runing状态。此时我们再次登录mysql,正常情况下此时应该已经登录成功了,但是博主的mysql却并不能免密登录,可能是mysql的版本问题。

     经过查找资料得知,我们需要首先需要初始化mysql的密码,有两种方法。我们先停止mysql:

    service mysqld stop
    mysql_install_db --datadir=/var/lib/mysql   //必须指定datadir,执行后会生成~/.mysql_secret密码文件  
    mysqld --initialize                         //新版的推荐此方法,执行后会在/var/log/mysqld.log生成随机密码  

    我使用第一种方法,执行成功后在~/目录即root目录下并没有生成 .mysql_secret密码文件。(此处可能是因为我已经启动过一次服务的原因,后面也会提到)。

    我遂放弃这一种方法,因为下面的方法也正好是新版推荐的。(如果需要深入了解此命令请查看官方文档

    但是当我执行第二种方法时,却产生如下错误。

    2017-05-11T01:41:54.675302Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.
    2017-05-11T01:41:54.675339Z 0 [ERROR] Aborting

    意思就是说我的/var/lib/mysql目录下有文件,我猜这两个命令都不成功的原因是因为我运行过一次mysql,

    于是我清空/var/lib/mysql目录,在/var/lib/mysql下执行

    rm -rf *

    再次执行

    mysqld --initialize

    果然成功,执行以下命令查看日志。

    cat /var/log/mysqld.log

    上面的我们都不看,直接看最下面有一个临时密码。

    此时我们再次启动mysql

    service mysqld start

    启动mysql后,我们使用临时密码登录.

    mysql -uroot -p

    登陆成功后是不能进行任何操作的,否则会报

    ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

    此时我们必须先修改mysql的密码:

    SET PASSWORD = PASSWORD('new password');

    然后退出quit或者exit,并用新密码重新登录。

    如果登录成功,我们的mysql就安装好啦。

    恭喜你,让我们开启愉快的mysql之旅吧!

    补充一点,这样设置完成之后只允许本机登录,如果你需要其他客户端远程连接时,则必须执行下一语句授权:

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
  • 相关阅读:
    3.Appium运行时出现:Original error: Android devices must be of API level 17 or higher. Please change your device to Selendroid or upgrade Android on your device
    3.Python连接数据库PyMySQL
    2.Python输入pip命令出现Unknown or unsupported command 'install'问题解决
    2.Linux下安装Jenkins
    5.JMeter测试mysql数据库
    Android 4学习(7):用户界面
    Android 4学习(6):概述
    Android 4学习(5):概述
    Android 4学习(4):概述
    Android 4学习(3):概述
  • 原文地址:https://www.cnblogs.com/Jxiaobai/p/6836081.html
Copyright © 2011-2022 走看看