zoukankan      html  css  js  c++  java
  • centos7 Mysql5.6 升级Mysql5.7

    1

    2. 卸载Mysql5.6 ,一共有三个包 要卸载:

        (1)先卸载mysql-server包 : 执行命令  yum remove mysql mysql-server

        (2)再卸载mysql-client包   :   执行命令  yum remove msyql-client

        (3)最后卸载mysql-devel   :   执行命令  yum remove msyql-devel

        三个包都顺利卸载完成以后,继续执行安装Mysql-5.7的命令

    3. 安装Mysql-5.7版本

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

                # yum install epel-release

         (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的终端执行如下命令

                   use msyql;

                   update 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             | 8      |
                    | validate_password_mixed_case_count   | 1      |
                    | validate_password_number_count       | 1      |
                    | validate_password_policy             | MEDIUM |
                    | validate_password_special_char_count | 1      |
                    +--------------------------------------+--------+


                    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 = 500
                #设置默认字符集为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 = 1
                #设置以顺序扫描的方式扫描表数据的时候使用缓冲区的大小
                read_buffer_size = 8M
                #打开文件数限制
                open_files_limit = 10240
                #修改InnoDB为独立表空间模式,每个数据库的每个表都会生成一个数据空间
                innodb_file_per_table = 1
                #索引和数据缓冲区大小,一般设置物理内存的60%-70%
                innodb_buffer_pool_size = 1G
                #缓冲池实例个数,推荐设置4个或8个
                innodb_buffer_pool_instances = 8
                #2代表只把日志写入到系统缓存区,再每秒同步到磁盘,效率很高
                innodb_flush_log_at_trx_commit = 2
                #日志缓冲区大小,由于日志最长每秒钟刷新一次,所以一般不用超过16M
                innodb_log_buffer_size = 8M
                #back_log参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中
                back_log = 1024
                #thread cache 池中存放的最大连接数
                thread_cache_size = 64
                #开启慢查询日志
                slow_query_log = ON
                #关闭密码复杂策略

                validate_password=off

    至此,更新就完成了 ,不过 登录mysql时可能会出现如下报错 

    ‘Table performance_schema.session_variables doesn't exist’

    解决方法如下 :

        mysql_upgrade -u root -p --force

    然后 重启mysql即可

  • 相关阅读:
    python调包——hashlib加密
    初识-图论基础+拓扑排序的实现
    初识 基本数据结构和stl
    【寒假作业三】-带着作业的幌子打开影视剧的奇妙体验和学会挂作业的机
    scapy模块的学习
    【寒假作业三】——高级代码拼接工人的养成(改)
    寒假作业二-自救指南(网络基础)
    【寒假作业一】-编写踩雷指南
    寒假作业一-Github部分
    markdown基础(试水)
  • 原文地址:https://www.cnblogs.com/Amos-Turing/p/9203210.html
Copyright © 2011-2022 走看看