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 ,因此拷贝过去的时候记得先备份。
centos下升级mysql5.5.47到5.7.14操作过程的更多相关文章
- CentOS 7下升级MySQL5.7.23的一个坑
发现CentOS 7下升级MySQL5.7.23的一个坑,以前面升级到MySQL 5.7.23的一个集群为例 在我们环境下打开文件描述符个数的参数open_files_limit在MySQL 5.6. ...
- 【Linux】CentOS下升级Python和Pip版本全自动化py脚本
[Linux]CentOS下升级Python和Pip版本全自动化py脚本 CentOS7.6自带py2.7和py3.6 想要安装其它版本的话就要自己重新下载和编译py其它版本并且配置环境,主要是软链接 ...
- Linux(Centos)——下升级python3.3
CentOS下的Python版本一般都比较低,很多应用都需要升级python来完成.我装的centOS的默认的python版本是V2.4.3,但运行node.js需要的版本是2.5以上. 1.下载py ...
- centos 下安装mysql-5.6.11
这次是在centos6.4下安装mysql,在安装之前,你要先确定你的linux已经安装了这些包: wget, gcc-c++, ncurses-devel ,cmake, make ,perl 如果 ...
- centos下升级mysql后遇到的小问题
记录今天遇到的一个小问题, 写一个app访问接口涉及到通过存储过程反馈多个结果集,但是反回多个结果集的存储过程,调用之后只能反回一个了,而且奇怪的是,即使直接在mysql上同时执行两条查询语句,第一条 ...
- centos下升级git版本的操作记录
在使用git pull.git push.git clone的时候,或者在使用jenkins发版的时候,可能会报类似如下的错误: error: The requested URL returned e ...
- CentOS下安装mysql5.7和mysql8.x
5.7和8.15版本亲测.centos版本为:CentOS-7-x86_64-Minimal-1810. 1.下载mysql57-community-release-el7-9.noarch.rpm. ...
- centOS下升级python版本,详细步骤
1.可利用linux自带下载工具wget下载,如下所示:( 笔者安装的是最小centos系统,所以使用编译命令前,必须安装wget服务,读者如果安装的是界面centos系统,或者使用过编译工具则可跳 ...
- centos下安装Mysql5.7.20
0.环境 本文操作系统: CentOS 7.2.1511 x86_64MySQL 版本: 5.7.16 1.卸载系统自带的 mariadb-lib [root@centos-linux ~]# rpm ...
随机推荐
- 大数据学习系列(1)-- linux之文件系统结构介绍
1./ 根目录 --------- 所有目录挂在其下 2./boot --------- 存放Ubuntu内核和系统启动文件.系统启动时这些文件先被装载. 3./etc --------- 系统的配置 ...
- 九度OJ 1184:二叉树遍历 (二叉树)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3515 解决:1400 题目描述: 编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储). 例如如下的 ...
- spring boot的对象注入
1 需求 现在我们的项目中需要引入一个java类库,我想要很方便的使用该类库中的一个类,并且我想要创建这个类的一个单例对象.然后可以很方便的在各个模块中用@AutoWired进行对象注入. 比如一个配 ...
- js滚动到指定位置显示或隐藏元素
$(function(){ $(window).scroll(function(){ var scroll_top=$(window).scrollTop(); console.log(scroll_ ...
- linux c编程:FIFO
前面介绍的pipe属于匿名管道 管道的主要局限性正体现在它的特点上: 只支持单向数据流: 只能用于具有亲缘关系的进程之间: 没有名字: 管道的缓冲区是有限的(管道制存在于内存中,在管道创建时,为缓冲区 ...
- 使用curl / wget命令上传下载FTP
curl可以在shell下轻松上传下载ftp上的文件,相比ftp命令更具有优势,因为它能在单命令条件下,下载或者上传一个ftp文件,甚至可以删除文件. 下面看实例: 1.列出ftp服务器上的目录列表: ...
- 说说JavaScript 中的new吧
在其他语言中,new操作符都是用来实例化创建一个对象的,JavaScript 中同样如此,但是它又有一些不同.为了说清楚这个问题我们先来看一下JavaScript 中的类.原型.原型链.继承这些概念吧 ...
- servlet实现验证码
(博客内容来自:jsp使用servlet实现验证码,以下内容只是不才对原博客的摘抄以便以后翻阅使用) 一.原理: 验证码作为一个图片,在页面中为“画”出来的,它是如何画出来的呢? <生成图片&g ...
- codeforces 154A 贪心
贪心 题目自身限制每个字母最多出现在一个限制词语中,给出k个限制词语,将问题转化为k个子问题,对每个限制词语遍历给出的字符串,如限制词do,若出现连续的oddoood(连续的o和d),统计o和d出现的 ...
- mysql自定义函数语法
创建函数 DELIMITER $$DROP FUNCTION IF EXISTS `test` $$CREATE FUNCTION `test`(a int ,b int)RETURNS int BE ...