于2015年10月19日(美国时间),Oracle公司发布了开源数据库MySQL的最新版本5.7。到现在已有将近3年之久,经过这几年的改进,MySQL5.7性能最高可达前一个版本的3倍,现在官网的最新版本是5.7.18.在这里,我将介绍yum的安装MySQL5.7的方法。

1:添加MySQL5.7的YUM源,建议安装epel源

# yum install epel-release

根据CentOS版本的不同,添加rpm的地址也有所不同

Centos6.5    

# yum install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm

      CentOS7

# yum install https://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

2:激活MySQL5.7源

# yum-config-manager --disable mysql56-community
# yum-config-manager --enable mysql57-community-dmr

3:如果系统里面没有yum-config-manage命令,执行如下命令进行安装。

# yum install yum-utils

4:执行安装MySQL5.7

# yum install mysql mysql-devel mysql-server mysql-utilities

5:初始化密码,由于我没有在/root目录下找到第一次启动的随机密码,我就使用了如下操作

# vim /etc/my.cnf
# 在mysqld字段中添加
[mysqld]
skip-grant-tables
#然后执行
systemctl restart mysqld
#此时直接敲mysql进入mysql的终端执行如下命令
update mysql.user set authentication_string=password(123456) where user='root' and Host = 'localhost';
#此时重启mysql后,注释掉刚刚添加的那个字段,systemctl restart mysqld  会告诉你的密码不符合复杂程度要求,需要再次更改;
#然后用123456这个密码进入mysql终端,在此执行如下命令
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234@Mfg');
FLUSH PRIVILEGES;
#之后用新的密码登录即可~~~

6:修改默认字符集为UTF-8

#由于现在大家都使用UTF-8作为默认字符集,因此需要在mysqld中添加如下字段
[mysqld]
character-set-server=utf8

7:由于默认的密码策略要求必须符合复杂程度,这是因为MySQL5.7以后引入了密码策略插件

mysql>  SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | |
| validate_password_mixed_case_count | |
| validate_password_number_count | |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | |
+--------------------------------------+--------+ mysql> show plugins;
| ngram | ACTIVE | FTPARSER | NULL | GPL |
| validate_password | ACTIVE | VALIDATE PASSWORD | validate_password.so | GPL |
由于本人使用觉得很不方便,可以在配置文件中添加如下字段将其关闭!当然这也做是很不理智的,毕竟安全大于一切!

#关闭密码复杂策略
validate_password=off

8:完整的MySQL配置优化后的配置文件如下(本人参照网上的示例之后自己整理的):

[mysqld]
#修改最大连接数
max_connections =
#设置默认字符集为utf8
character-set-server=utf8
#查询排序时缓冲区大小,只对order by和group by起作用,可增大此值为16M
sort_buffer_size = 16M
#查询缓存限制,只有1M以下查询结果才会被缓存,以免结果数据较大把缓存池覆盖
query_cache_limit = 1M
#查看缓冲区大小,用于缓存SELECT查询结果,下一次有同样SELECT查询将直接从缓存池返回结果,可适当成倍增加此值
query_cache_size = 16M
#给所有的查询做cache,代表使用缓冲
query_cache_type =
#设置以顺序扫描的方式扫描表数据的时候使用缓冲区的大小
read_buffer_size = 8M
#打开文件数限制
open_files_limit =
#修改InnoDB为独立表空间模式,每个数据库的每个表都会生成一个数据空间
innodb_file_per_table =
#索引和数据缓冲区大小,一般设置物理内存的60%-%
innodb_buffer_pool_size = 1G
#缓冲池实例个数,推荐设置4个或8个
innodb_buffer_pool_instances =
#2代表只把日志写入到系统缓存区,再每秒同步到磁盘,效率很高
innodb_flush_log_at_trx_commit =
#日志缓冲区大小,由于日志最长每秒钟刷新一次,所以一般不用超过16M
innodb_log_buffer_size = 8M
#back_log参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中
back_log =
#thread cache 池中存放的最大连接数
thread_cache_size =
#开启慢查询日志
slow_query_log = ON
#关闭密码复杂策略
validate_password=off

9:发现一部分人使用yum安装后,再使用配置文件中指定datadir 和 basedir,导致启动失败,这里制定后还需要修改启动文件,还需要给制定的目录赋予mysql账号的权限;这里yum安装后datadir 和basedir的位置如下代码所示:

mysql> show variables like '%datadir%';
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| datadir | /var/lib/mysql/ |
+---------------+-----------------+
1 row in set (0.00 sec) mysql> show variables like '%basedir%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| basedir | /usr/ |
+---------------+-------+
1 row in set (0.00 sec)

PS:补充说明

由于本人当时比较愚钝,没有找到安装完成后的临时密码,后面发下在/var/log/mysqld.log文件中

[root@iZ8vbdzsluhqdi7xr4r99wZ ~]# grep "A temporary password"  /var/log/mysqld.log
--11T08::.386970Z [Note] A temporary password is generated for root@localhost: qc&Urn5>kUT&

CentOS7 下使用YUM安装 MySQL5.7的更多相关文章

  1. centos7下用yum安装mysql5.7

    1.安装mysql源 下载地址:http://dev.mysql.com/downloads/repo/yum/ 下载之后用yum安装:yum localinstall -y xx.noarch.rp ...

  2. CentOS7下使用YUM安装MySQL5.6

    (1)检查系统中是否已安装 MySQL. rpm -qa | grep mysql 返回空值的话,就说明没有安装 MySQL . 注意:在新版本的CentOS7中,默认的数据库已更新为了Mariadb ...

  3. centos7下使用yum安装mysql5.7.10

    原文地址:http://www.mamicode.com/info-detail-503994.html CentOS7的yum源中默认好像是没有mysql的.为了解决这个问题,我们要先下载mysql ...

  4. centos7下使用yum安装mysql

    CentOS7的yum源中默认好像是没有mysql的.为了解决这个问题,我们要先下载mysql的repo源. 1. 下载mysql的repo源 wget http://repo.mysql.com/m ...

  5. centos7下使用yum安装pip

    centos7下使用yum安装pip 首先安装epel扩展源: yum -y install epel-release 更新完成之后,就可安装pip: yum -y install python-pi ...

  6. centos7下使用yum安装redis

    centos7下使用yum安装Redis 第一步:安装 yum –y install redis 第二步:启动 systemctl start redis.service 第三步:设置开机启动 sys ...

  7. CentOS7下使用YUM安装mariadb10

    1:由于centos7 默认使用yum安装MySQL的话就会安装mariadb,只是安装的版本停留在mariadb5.x,版本比较低.如果我们需要安装mariadb10这里就需要删除mariadb-l ...

  8. 日常工作问题解决:centos7下使用yum安装软件报yum.pid锁定

    问题描述: 在centos7下使用yum进行软件安装时报yum.pid已经被锁定,如下所示: [root@centos7-129 ~]# yum -y install dhcp 已加载插件:faste ...

  9. CentOS7.4使用yum安装MySQL5.6

    CentOS默认数据库为mariadb可以使用yum安装MySQL5.6 系统版本查看 下载yum源安装 wget http://dev.mysql.com/get/mysql-community-r ...

随机推荐

  1. C# DataTable转换成实体列表 与 实体列表转换成DataTable

    /// <summary> /// DataTable转换成实体列表 /// </summary> /// <typeparam name="T"&g ...

  2. 地理位置 API

    js获取地理位置的接口navigator.geolocation geolocation对象有三个方法 1.getCurrentPosition 2.watchPosition 3.clearWatc ...

  3. ImageView最大高度和宽度失效解决方案

    解决方案 做RecyclerView的 item 布局时,用到imageview ,可是图片按原始尺寸显示,不规范. 所以去google了一下imageview的宽高限制,就试了下maxheight/ ...

  4. python基础入门教程《python入门经典》

    第一章 在python中使用数字 1.用变量存储信息 1.1变量的类型 变量,用于存储很多不同的数据类型的信息. 基本数据类型 数据类型 存储内容 示例 integer 整   float 浮点   ...

  5. 刨根究底字符编码之十三——UTF-16编码方式

    UTF-16编码方式 1. UTF-16编码方式源于UCS-2(Universal Character Set coded in 2 octets.2-byte Universal Character ...

  6. java中的中文参数存到数据库乱码问题

    关于java中的中文参数乱码问题,遇见过很多,若开发工具的字符集环境和数据库的字符集环境都一样,存到数据库中还是乱码的话,可以通过以下方法解决: 用数据库客户端检查每个字段的字符集和字符集校对和这个表 ...

  7. cpp(第十一章)

    1. std::istream & operator>>(std::istream &is,complex_c &t) { std::cout<<&qu ...

  8. cpp(第四章)

    1.索引比数组长度少1: 2.c++中不能数组赋给另一个数组:只能定义时才能使用初始化: 3.c++11中{}内为空,默认赋值为0,而c++中{}如果只对部分初始化,其他部分将被设置为0:c++11使 ...

  9. JavaScript之语句,循环

    JavaScript中语句主要分为三类:顺序,分支,循环. 1.顺序语句: 按照循序依次执行,最普通常见的语句,这里不多赘述. 其结构如下 2.分支语句: 根据条件判断,不同的结果执行不同的语句. 其 ...

  10. Javascript实现Base64解码

    工作中需要用到,在stackoverflow中找到的,实践证明可用. function decode_base64(s) { var e = {}, i, k, v = [], r = '', w = ...