• 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;
  • 相关阅读:
    jquery效果,多个div,点击任何一个div,那么这个div会切换文字,变换背景颜色,再次点击其他的div ,这个div会发生刚才的变化,之前点击的div的颜色会变回来
    用js动态的改变img标签里面的src属性实现图片的循环切换
    清除浮动
    清除浮动clearfix
    转移符 个人工作中使用记录一下
    12.Django数据库操作(执行原生SQL)
    11.Django数据库操作(查)
    10.Django数据库操作(增删改)
    9.Django里的数据同步migrations命令
    8.Django模型类例子
  • 原文地址:https://www.cnblogs.com/Jxiaobai/p/6836081.html
Copyright © 2020-2023  润新知