日度归档:2017年5月6日

linux centos7下MariaDB10.1升级到MariaDB10.2新版本

下载二进制安装包,地址 //downloads.mariadb.org/mariadb/10.2.5/

# cd /usr/local/
# wget //mirrors.neusoft.edu.cn/mariadb//mariadb-10.2.5/bintar-linux-glibc_214-x86_64/mariadb-10.2.5-linux-glibc_214-x86_64.tar.gz

停止当前数据库

# systemctl stop mysql.server

删除MariaDB10.1的软连接

# rm -rf /usr/local/mysql

注意:首先你的mysql在安装的时候创建的是软连接,如果不是就重命名mysql文件夹,否则删除后数据就没有了(除非你的数据不是放在mysql安装文件夹内)。不删除还有个好处;如果升级失败,就能快速回滚。如果/usr/local/mysql目录是软连接,请忽略这段。

# mv /usr/local/mysql /usr/local/mysqlbak

解压下载的安装包,刚刚是下载到/usr/local/下

# tar zxvf mariadb-10.2.5-linux-glibc_214-x86_64.tar.gz //解压文件
# ln -s mariadb-10.2.5-linux-glibc_214-x86_64 mysql //创建软连接
# chwon -R root .
# chown -R mysql data
# systemctl start mysql.server

升级成功,然后再升级mysql数据库字典,否则日志中会产生很多错误信息。

# /usr/local/mysql/bin/mysql_upgrade -uroot -p
Enter password: 【输入mysql的root密码】

Checking if update is needed.
Checking server version.
Running queries to upgrade MySQL server.
Checking system database……………..
…………………………………..
………………….
Upgrade process completed successfully.
Checking if update is needed.

升级报错的话,检查你的my.cnf文件,看其中的数据库存储路径是否正确。我的数据存储与mysql安装不在同一目录。

# systemctl restart mysql.server //重启mysql数据库

届时已经升级成功,可以登录mysql查看

# mysql -uroot -p
Enter password: 【输入mysql的root密码】

Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 9110
Server version: 10.2.5-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

MariaDB [(none)]>

升级完成。

总结:升级的过程当中有些问题需要注意,我升级的时候mysql安装路径和数据存储文件不在同一目录,这样我就可以直接重命名之前的mysql安装目录(或删除软连接),如果您的数据是和mysql安装文件在同一目录,那么就需要把/usr/local/mysqlbak/data ,data这个目录拷贝到mariadb-10.2.5-linux-glibc_214-x86_64内,并给mysql用户和组权限即可。