5.7和之前版本的MySQL有一些不同,现把CentOS 7下MySQL 5.7安装、配置与应用完整过程记下来,或许对新手来说有用。

本文描述的安装是采用通用的二进制压缩包(linux – Generic)以解压方式安装,相当于绿色安装了。

一、下载通用安装二进制包

先下载mysql安装包:打开 http://dev.mysql.com/downloads/mysql/
选择 linux – Generic并在其下选择
Linux – Generic (glibc 2.5) (x86, 64-bit), Compressed TAR Archive
进行下载。可以先下载到一个临时目录里,解压后,得到两个包:
mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz
mysql-test-5.7.11-linux-glibc2.5-x86_64.tar.gz
只需要mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz 这个包就行了。

二、建立用户和目录

建立用户mysql,组mysql。后面mysql就使用这个用户来运行(注意这也是mysql启动脚本中默认的用户,因此最好不要改名)。

groupadd mysql

useradd -r -g mysql mysql

(使用-r参数表示mysql用户是一个系统用户,不能登录)

建立目录/work/program,后面mysql就安装在这个目录下面。

mkdir /work/program

三、安装

【解压】
将前面得到的mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz解压至/work/program目录下

tar zxvf mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz -C /work/program

这时在program下得到的目录名很长,如果不想改名,则可以建立一个联接:

ln -s mysql-5.7.11-linux-glibc2.5-x86_64 mysql

此后就可以用/work/program/mysql来找到mysql的安装目录了

注意,如果mysql目录下没有data目录,手动建一个。

【目录权限设置】
将mysql及其下所有的目录所有者和组均设为mysql:

cd /work/program/mysql

chown mysql:mysql -R .

【初始化】

/work/program/mysql/bin/mysqld –initialize –user=mysql –datadir=/work/program/mysql/data –basedir=/work/program/mysql

注意:

  1. data目录解压后没有,需要手动建立(见上文);
  2. mysql5.7和之前版本不同,很多资料上都是这个命令
    …../scripts/mysql_install_db –user=mysql
    而5.7版本根本没有这个。

初始化成功后出现如下信息:
201x-xx-xxT07:10:13.583130Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use –explicit_defaults_for_timestamp server option (see documentation for more details).
201x-xx-xx T07:10:13.976219Z 0 [Warning] InnoDB: New log files created, LSN=45790
201x-xx-xx T07:10:14.085666Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
201x-xx-xx T07:10:14.161899Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 1fa941f9-effd-11e5-b67d-000c2958cdc8.
201x-xx-xx T07:10:14.165534Z 0 [Warning] Gtid table is not ready to be used. Table ‘mysql.gtid_executed’ cannot be opened.
201x-xx-xx T07:10:14.168555Z 1 [Note] A temporary password is generated for root@localhost: q1SLew5T_6K,

注意最后一行,这也是和之有版本不同的地方,它给了root一个初始密码,后面要登录的时候要用到这个密码。

【配置】
将mysql/support-files下的my-default.cnf改名为my.cnf,拷到/etc下(或者考到{mysql}下,然后作一个软链接到/etc下):

cp /work/program/mysql/support-files/my-default.cnf /etc/my.cnf

my.cnf中关键配置:
[mysqld]
basedir = /work/program/mysql
datadir = /work/program/mysql/data
port = 3306
socket = /work/program/mysql/tmp/mysql.sock

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

注意,tmp目录不存在,请创建之。

如果不把my.cnf拷到/etc下,运行时会出现:
mysqld: Can’t change dir to ‘/usr/local/mysql/data/’ (Errcode: 2 – No such file or directory)
这样的出错提示,说明它没找到my.cnf中的配置;而去找了程序编译时的默认安装位置:/usr/local/mysql

四、运行

【运行服务器程序】

{mysql}/bin/mysqld_safe&

注:在这个启动脚本里已默认设置–user=mysql;在脚本末尾加&表示设置此进程为后台进程,区别就是在控制台输入bg,即可将当前进程转入后台,当前shell可进行其他操作。
【停止mysql】
{mysql}/bin/mysqladmin -uroot -p
(注意此时的root是指mysql的root用户)

五、设置mysql以服务运行并且开机启动

将{mysql}/ support-files/mysql.server 拷贝为/etc/init.d/mysql并设置运行权限

cp mysql.server /etc/init.d/mysql

chmod +x /etc/init.d/mysql

把mysql注册为开机启动的服务

chkconfig –add mysql

当然也可以手动进行服务的开启和关闭:

/etc/init.d/mysql start

/etc/init.d/mysql stop

六、客户端连接测试

{mysql}/bin/mysql -uroot -p

此时要求输入密码,就是前面初始化时生成的密码。
这时如果连接服务的时候出现错误:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)
则需要在在my.cnf中填加:
[client]
socket = /work/program/mysql/tmp/mysql.sock

连上后,在做任何操作前,mysql要求要改掉root的密码后才能进行操作。
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> alter user ‘root’@’localhost’ identified by ‘xxxxxxx';

七、TIPS

【查看mysql是否运行】
ps -ef|grep mysqld
netstat -lnp | grep -i mysql

【mysql启动时读取配置文件my.cnf的顺序】
可以运行如下命令查看:
./bin/mysqld –verbose –help |more
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
可以看到,启动时可以从上述目录下读取配置文件my.cnf。如果当前my.cnf文件不位于上述位置,则必须考过去或做链接。
MySQL 5.7新特性之Generated Column(函数索引) http://www.linuxidc.com/Linux/2016-02/128066.htm

升级到MySQL 5.7 解决分区问题 http://www.linuxidc.com/Linux/2016-02/128060.htm

MySQL 5.7 完美的分布式事务支持 http://www.linuxidc.com/Linux/2016-02/128053.htm

MySQL 5.7 新特性详解 http://www.linuxidc.com/Linux/2016-01/127636.htm

MySQL 5.7.11 发布下载 http://www.linuxidc.com/Linux/2016-02/128268.htm

CentOS 7下MySQL 5.7安装的更多相关文章

  1. (转)CentOS 7 下 MySQL 5.7 配置 Percona Xtrabackup

    CentOS 7 下 MySQL 5.7 配置 Percona Xtrabackup 原文:http://qizhanming.com/blog/2017/05/10/install-percona- ...

  2. Windows 8.1下 MySQL绿色版安装配置与使用

    原文:Windows 8.1下 MySQL绿色版安装配置与使用 Mysql-5.6.17-winx64操作步骤: 一.安装MySQL数据库 1.下载. 下载地址:http://downloads.my ...

  3. centos 6 下,zephir的安装和使用

    centos 6 下,zephir的安装和使用 zephir或许会开启一个新的PHP编写方式. 在这之前,如果我们要编写php的扩展,一般都是c++/clang/vc等等. 但是现在,我们有了新的选择 ...

  4. Window下MySql 5.6 安装后内存占用很高的问题

    Window下MySql 5.6 安装后内存占用很高的问题 刚刚准备玩一把mysql,初学者 环境是window 7和window sever 2008, mysql是最新的5.6, 发现的问题是安装 ...

  5. Windows 10下mysql 64位 安装(mysql-5.7.11-winx64安装)

    Windows下mysql 64位 安装(mysql-5.7.11-winx64安装) 系统Windows10 安装包mysql-5.7.11-winx64.zip 安装过程中遇到的问题,请留意4.0 ...

  6. Window 下 MySQL 环境的安装

    Window 下 MySQL 环境的安装 简介: MySQL 是最流行的关系型数据库管理系统,在WEB应用方面 MySQL 是最好的RDBMS(Relational Database Manageme ...

  7. [转] Linux学习之CentOS(十三)--CentOS6.4下Mysql数据库的安装与配置

    from:  http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html 如果要在Linux上做j2ee开发,首先得 ...

  8. Linux学习之CentOS(十三)--CentOS6.4下Mysql数据库的安装与配置

    原文:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html 如果要在Linux上做j2ee开发,首先得搭建好j ...

  9. Linux学习之CentOS(十三)--CentOS6.4下Mysql数据库的安装与配置(转)

    原文地址:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/3003278.html 如果要在Linux上做j2ee开发,首先得搭建 ...

随机推荐

  1. 如果有人问你 JFinal 如何集成 EhCache,把这篇文章甩给他

    废话不多说,就说一句:在 JFinal 中集成 EhCache,可以提高系统的并发访问速度. 可能有人会问 JFinal 是什么,EhCache 是什么,简单解释一下. JFinal 是一个基于Jav ...

  2. 为什么用Markdown,而不用Word?

    写博客.写文章比较多的人都知道 Markdown 是什么. Markdown 是一种轻量级标记语言,创始人为 John Gruber.它允许人们「使用易读易写的纯文本格式编写文档,然后转换成有效的 X ...

  3. 斐波那契数列n项的值。(递归和非递归算法Golang实现)

    递归实现: func f(num int) int { if num == 1 || num == 2 { return 1 } return f(num-1) + f(num-2) } 非递归实现: ...

  4. C# 8 的模式匹配

    C# 7 里面的Pattern Mathing is 模式 switch 和 when C# 8 里面的Pattern Matching 使用Deconstructor 和 位置匹配模式 下面两个类T ...

  5. 了解ajax基本爬取方式

    '''爬去豆瓣电影数据了解ajax的基本爬去方式 ''' from urllib import requestimport jsonimport ssl url = "https://mov ...

  6. stm32cubeMX配置LWIP

    MCU:stm32f769NIHx  PHY:LAN8742A LWIP_VERSION:2.0.3 1.配置RCC,串口(printf debug log) (1)开启RCC,配置时钟系统 图1.1 ...

  7. MFC::使用mysql

    下载mysql-installer-community-5.7.16.0.msi,安装 mysql server即可. 创建工程包含头文件 #include "winsock.h" ...

  8. PowerShell渗透--Empire(二)

    权限提升 Bypass UAC usemodule powershell/privesc/bypassuac 设置listener execute list查看 usemodule powershel ...

  9. 玩转ArduinoJson库 V6版本

    1.前言     前面,博主已经讲解了ArduinoJson库的V5版本.为了节省时间以及不讨论重复内容,博主建议读者先去阅读一下 玩转ArduinoJson库 V5版本 .重点了解几个东西: JSO ...

  10. 使PC端网页宽度自适应手机屏幕大小

    有时候我们会纠结PC页面在手机页面上无法正常显示,超出屏幕,有些内容看不到,现在又了下面的代码,可以做到自适应手机端的屏幕宽度: 在html的<head>中增加一个meta标签: < ...