zoukankan      html  css  js  c++  java
  • centos下升级mysql5.5.47到5.7.14操作过程

    一. 查看已安装Mysql基础信息
    通过mysql –V 查看下mysql版本
    可以通过命令find / -name mysql 得到下面信息

    1、安装目录
    [root@jjxnhd-192-10 mysql]# /var/lib/mysql
    2、配置文件
    [root@jjxnhd-192-10 mysql]# /usr/share/mysql
    3、相关命令 
    [root@jjxnhd-192-10 mysql]# /usr/bin (mysqladmin mysqldump等命令)
    4、启动脚本
    [root@jjxnhd-192-10 mysql]# /etc/init.d/mysql
    mysql启动,重启,停止命令如下:
    /etc/init.d/mysqld start
    /etc/init.d/mysqld restart
    /etc/init.d/mysqld stop
    备份mysql相关数据,配置
    (1).备份数据库,可以将mysql内数据库分开备份
    通过 mysql –uroot –p 上去

    备份重要数据库:
    [root@jjxnhd-192-10 mysql]# cd /opt/szw
    [root@jjxnhd-192-10 mysql]# mysqldump -u root -p hive > hive.sql
    [root@jjxnhd-192-10 mysql]# mysqldump -u root -p oozie > oozie.sql

    (2).备份Mysql 数据目录,更多备份,更多安全
    [root@jjxnhd-192-10 mysql]# cp -R /var/lib/mysql/ mysqldata

    (3).备份MySQL 配置文件
    [root@jjxnhd-192-10 mysql]# cp /etc/my.cnf mysqlconf

    三.升级mysql(注意:所有对文件的修改,修改之前都要进行备份)

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

    先下载mysql安装包:打开 http://dev.mysql.com/download...
    选择 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 这个包就行了。

    2、建立用户和目录

    建立用户mysql,组mysql。后面mysql就使用这个用户来运行(注意这也是mysql启动脚本中默认的用户,因此最好不要改名)。
    groupadd mysql
    useradd -r -g mysql mysql
    (使用-r参数表示mysql用户是一个系统用户,不能登录)
    建立目录/work/program,后面mysql就安装在这个目录下面。
    mkdir -p /work/program

    3、安装

    【解压】
    将前面得到的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

    初始化成功后出现如下信息:
    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下
    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

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

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

    cp mysql.server /etc/init.d/mysql  (需要修改basedir ,datadir )
    chmod +x /etc/init.d/mysql

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

    chkconfig --add mysql
    启动mysql:
    /etc/init.d/mysql start
    此处如果提示有错误,记得先ps –ef|grep mysql 查看mysql进程,如果有的话,请先全部kill,然后在执行上面命令。

    5、客户端连接测试

    /work/program/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';

    然后exit退出,在重新用新密码登录试试。

    四.将备份的数据库导入新版mysql
    [root@jjxnhd-192-11 opt]# mysql -uroot –p
    mysql> create database hive;
    mysql> create database oozie;
    mysql> use hive;
    mysql> set names utf8;
    mysql> source /opt/szw/hive.sql;
    mysql> use oozie;
    mysql> set names utf8;
    mysql> source /opt/szw/oozie.sql;

    五.查看mysql版本

    如果你查看时版本还是原来的,那么你需要把/work/program/mysql/bin/mysql拷贝到/usr/bin/下。
    注:/usr/bin 下原来也有mysql ,因此拷贝过去的时候记得先备份。

  • 相关阅读:
    面对复杂业务,if-else coder 如何升级?
    为什么StringBuilder是线程不安全的?
    Hashmap中文解释
    mysql 5.6 5.7 8.0新特性
    数据增强,扩充数据集
    神经网络参数优化器
    缓解过拟合
    损失函数
    神经网络的复杂度&指数衰减学习率&激活函数
    GRU&实例股价预测
  • 原文地址:https://www.cnblogs.com/wangmo/p/8360150.html
Copyright © 2011-2022 走看看