一、卸载MariaDB

CentOS7默认安装MariaDB而不是MySQL,而且yum服务器上也移除了mysql相关的软件包。因为MariaDB和MySQL可能会冲突,故先卸载MariaDB。 
1. 安装新版mysql之前,我们需要将系统自带的mariadb-lib卸载

[root@localhost ~]# rpm -qa | grep -i mariadb
mariadb-libs-5.5.52-1.el7.x86_64
[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64 如果发现依赖缺陷报错, yum remove mysql-libs

注:详细卸载教程可自行百度,很简单。

二、到mysql的官网下载最新版mysql的rpm集合包

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

1. 通过xshell的rz命令将mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar上传到Linux系统中。

 
注:我上传到的路径 /usr/local/tools

2. 通过mkdir命令创建mysql目录,放入解压后的文件,为以后的安装做准备。

3.解压压缩包到mysql目录

四.安装MySQL解压包

注:所有解压包,不一定需要全部安装、注意安装顺序 
以下是安装顺序 这几个包由依赖关系。执行有先后其中,client依赖于libs,server依赖于common和client.

rpm -ivh mysql-community-common-5.7.18-1.el7.x86_64.rpm // <br>
rpm -ivh mysql-community-libs-5.7.18-1.el7.x86_64.rpm //<br>
rpm -ivh mysql-community-libs-compat-5.7.18-1.el7.x86_64.rpm<br>
rpm -ivh mysql-community-client-5.7.18-1.el6.x87_64.rpm //客户端安装包 <br>
rpm -ivh mysql-community-server-5.7.18-1.el6.x87_64.rpm //服务端安装包<br>
rpm -ivh mysql-community-devel-5.7.18-1.el7.x87_64.rpm //包含开发用的库头文件安装包<br>

注: i-install安装;v-verbose进度条;h-hash哈希校验;安装过程中可能会出现 perl 环境等问题,按提示百度就行。

五、数据库初始化

1.为了保证数据库目录为与文件的所有者为 mysql 登陆用户,如果你的linux系统是以 root 身份运行 mysql 服务,需要执行下面的命令初始化

[root@localhost mysql]# mysqld --initialize --user=mysql

如果是以 mysql 身份登录运行,则可以去掉 –user 选项。
注: –initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过期,登陆后你需要设置一个新的密码
这里演示使用的 –initialize 初始化的,会生成一个 root 账户密码,密码在log文件里,红色区域的就是自动生成的密码

使用 cat /var/log/mysqld.log 命令打开日志文件

六、启动mysql数据库

注:systemctl是Centos7特有的启动方式

systemctl start mysqld.service

七、登录mysql数据库并创建Mysql新密码

1.登录mysql,然后输入日志中的随机密码。

mysql -u root -p;

2.设置你的密码。

set password = password('你的密码');

3.设置授权(远程访问)

grant all privileges on *.* to 'root' @'%' identified by'你的密码';

4.刷新权限

flush privileges;

(转)

/charlie/software/mysql/data是我新建的MySQL目录,修改文件夹权限:sudo chown -R mysql:msyql /charlie/software/mysql/data

修改/etc/my.cnf文件

[mysqld]

character_set_server=utf8
socket=/charlie/software/mysql/data/mysql.sock
datadir=/charlie/software/mysql/data
#socket=/var/lib/mysql/mysql.sock
#datadir=/var/lib/mysql

然后做一个mysql.sock 链接:
ln -s /charlie/software/mysql/data/mysql.sock /var/lib/mysql/mysql.sock

执行sudo systemctl start mysqld 会没有反应。然后在/var/log/mysqld.log查看日志,ERR错误会有一个

Can't start server : Bind on unix socket: Permission denied这样子的错误。

执行命令getenforce是不是出现的是Enforcing,如果是的话,执行setenforce 0 临时关闭,就可以启动MySQL。

然后执行sudo /usr/bin/mysql_secure_installation就可以设置了。

如果后面执行mysql相关命令出现:Can’t connect to local MySQL server through socket错误。

编辑/etc/my.cnf文件添加

 [mysql]
socket=/charlie/software/mysql/data/mysql.sock

主要还是对Linux不熟悉,找了很久才发现有可能是selinux的原因。

Centos7.3.1611安装mysql5.7.18 rpm教程 并设置datadir的更多相关文章

  1. 阿里云 Centos7.3安装mysql5.7.18 rpm安装

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

  2. 阿里云Centos7使用yum安装MySQL5.6的正确姿势

    阿里云Centos7使用yum安装MySQL5.6 阿里云Centos7使用yum安装MySQL5.6 前言:由于某些不可抗力,我要在自己的阿里云服务器上搭建hadoop+hive+mysql+tom ...

  3. CentOS7 通过YUM安装MySQL5.7 linux

    CentOS7 通过YUM安装MySQL5.7 1.进入到要存放安装包的位置 cd /home/lnmp 2.查看系统中是否已安装 MySQL 服务,以下提供两种方式: rpm -qa | grep  ...

  4. Linux(CentOS7)下二进制安装MySQL5.7.26

    记录一下自己在 CentOS7 下二进制安装 MySQL5.7.26 的过程,之前使用 Linux(CentOS7)下rpm安装MySQL8.0.16 之后发现 rpm 方式安装不利于维护,也不利于单 ...

  5. centos7.6自动化安装mysql5.5

    一.目的 简化安装mysql的安装过程,局限很大,仅支持centos7.6上安装mysql5.5.60,如果想在其他版本的操作系统安装mysql,请自行修改有关变量. 如果想了解mysql安装的具体过 ...

  6. centos系统下安装MySQL5.7.18

    1.首先安装依赖包 yum install -y gcc gcc-c++ ncurses-devel perl openssl-devel 最最重要的是,不要忘了安装openssl-devel 2.安 ...

  7. CentOS7利用docker安装MySQL5.7

    CentOS7利用docker安装MySQL5.7 前提条件 centos7 且内核版本高于3.10, 可通过以下命令查看内核版本 uname -r 利用yum 安装docker 安装一些必要的系统工 ...

  8. centos7安装mysql5.7.18笔记

    重装了一下系统,装了centos7,但是centos7下默认没有安装mysql,有MariaDB数据库,网上的解释是: “MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用 ...

  9. centos7安装mysql5.7(rpm安装版)

    1.下载mysql5.7的rpm安装包 rpm的mysql包,安装起来简单,解压版的mysql还需要做许多配置,稍有不慎就会出错!!! 下载地址:https://dev.mysql.com/downl ...

随机推荐

  1. 【Unity笔记】寻路导航用NavMeshObstacle做动态阻挡

    通常情况下,静态的场景中,给场景物体静态标记中勾选Navigation Static后,在导航界面进行导航网格的烘培,可以得到一个静态的导航网格. 但是由于导航网格是静态烘焙好了的,游戏中动态生成的物 ...

  2. RGB转灰度图的几种算法

    https://blog.csdn.net/cool1949/article/details/6649429 方法一:    对于彩色转灰度,有一个很著名的心理学公式: Gray = R*0.299 ...

  3. 递归 - 求 n 个球中取 m 个不同的球,有多少种取法?

    代码: #include <iostream> using namespace std; int F(int _n, int _m) { if(_n < _m) return 0; ...

  4. Java学习路线图,Java学习计划建议

    怎么学习Java,这是很多新手经常遇到的问题,现在我简单描述下一个Java初学者到就业要学到的一些东西:     首先要明白Java体系设计到得三个方面:J2SE,J2EE,J2ME(KJAVA).J ...

  5. JSP之应用Servlet过滤器进行身份验证

    1.Servlet过滤器的作用描述(1)在HttpServletRequest到达Servlet 之前,拦截客户的HttpServletRequest. 根据需要检查HttpServletReques ...

  6. 关于Unity中的特殊文件目录和资源管理(专题四)

    编辑器扩展目录: 1: Editor目录 Editor文件夹可以在根目录下,也可以在子目录里,夹就可以; Editor下面放的所有资源文件或者脚本文件都不会被打进发布包中,并且脚本也只能在编辑时使用; ...

  7. JS对checkbox全选和取消全选

    需求:checkbox控制列表数据全选与取消全选择. 效果图: 1.html <body > <input type="button" name="in ...

  8. (笔记)Mysql命令insert into:向表中插入数据(记录)

    insert into命令用于向表中插入数据. insert into命令格式:insert into <表名> [(<字段名1>[,..<字段名n > ])] v ...

  9. 2013年第四届蓝桥杯C/C++B组省赛题目解析

    一. 高斯日记 大数学家高斯有个好习惯:无论如何都要记日记. 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 后来人们知道,那个整数就是日期,它表示那一天是高斯出生后 ...

  10. nodejs基础 -- 全局对象

    全局对象:javascript中的一个特殊对象 全局变量:该特殊对象及其所有属性 该对象为:在浏览器javascript中,为window:在nodejs中,为global(所有全局变量都是globa ...