linux mariadb 升级,Mariadb数据库更新
線上的有一個(gè)c的程序,讀了mariadb的數(shù)據(jù)就core,查了下,我們用了mysql_ping命令,在執(zhí)行的時(shí)候在mariadb的內(nèi)部core了,用dmesg看了下內(nèi)核信息,最終定位可能的原因是Mysql的版本問題,所以本次需要將我們用的Mariadb的版本升級(jí)到最新,并且測試下是否有問題,頁就是一次升級(jí)過程。
一 查看OS版本和數(shù)據(jù)庫版本
#mysql
MariaDB [(none)]> select version();
+----------------+
| version() |
+----------------+
| 10.3.7-MariaDB |
操作系統(tǒng)版本:
[root@localhost ~]# lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.6.1810 (Core)
Release: 7.6.1810
Codename: Core
二 下載升級(jí)
2.1 下載
wget http://ftp.bme.hu/pub/mirrors/mariadb//mariadb-10.4.11/bintar-linux-x86_64/mariadb-10.4.11-linux-x86_64.tar.gz
停止老的mariadb:
service mysqld stop
#查看mysql和mariadb相關(guān)的包
rpm -qa|grep mariadb
[root@localhost opt]# rpm -qa | grep mariadb
mariadb-libs-5.5.64-1.el7.x86_64
[root@localhost opt]# rpm -e mariadb-libs-5.5.64-1.el7.x86_64
error: Failed dependencies:
libmysqlclient.so.18()(64bit) is needed by (installed) perl-DBD-MySQL-4.023-5.el7.x86_64
libmysqlclient.so.18()(64bit) is needed by (installed) postfix-2:2.10.1-6.el7.x86_64
libmysqlclient.so.18(libmysqlclient_18)(64bit) is needed by (installed) perl-DBD-MySQL-4.023-5.el7.x86_64
libmysqlclient.so.18(libmysqlclient_18)(64bit) is needed by (installed) postfix-2:2.10.1-6.el7.x86_64
發(fā)現(xiàn)沒有多少個(gè),可能是yum安裝,所以用yum查看下安裝的mysql和卸載:
[root@localhost opt]# yum list|grep maria
mariadb-libs.x86_64 1:5.5.64-1.el7 @base
holland-mariabackup.noarch 1.1.20-1.el7 epel
mariadb.x86_64 1:5.5.64-1.el7 base
mariadb-bench.x86_64 1:5.5.64-1.el7 base
mariadb-devel.i686 1:5.5.64-1.el7 base
mariadb-devel.x86_64 1:5.5.64-1.el7 base
mariadb-embedded.i686 1:5.5.64-1.el7 base
mariadb-embedded.x86_64 1:5.5.64-1.el7 base
mariadb-embedded-devel.i686 1:5.5.64-1.el7 base
mariadb-embedded-devel.x86_64 1:5.5.64-1.el7 base
mariadb-libs.i686 1:5.5.64-1.el7 base
mariadb-server.x86_64 1:5.5.64-1.el7 base
mariadb-test.x86_64 1:5.5.64-1.el7 base
#卸載
yum remove mariadb-test.x86_64 mariadb-server.x86_64 mariadb-libs.i686 mariadb-embedded-devel.x86_64 mariadb-embedded-devel.i686 mariadb-embedded.x86_64 mariadb-embedded.i686 mariadb-devel.x86_64 mariadb-devel.i686 mariadb-bench.x86_64 mariadb.x86_64 holland-mariabackup.noarch mariadb-libs.x86_64
二 安裝
結(jié)果運(yùn)行出錯(cuò):
mariadb Unknown/unsupported storage engine: InnoDB
網(wǎng)上有忽略這個(gè)引擎的辦法,但是我們的表就用InnoDB引擎,所以智能另外想辦法
忽略InnoDB,可以更改my.cnf
[mysqld]
innodb=OFF
ignore-builtin-innodb
skip-innodb
default-storage-engine=myisam
default-tmp-storage-engine=myisam
有人說刪除日志,但是我的數(shù)據(jù)庫的數(shù)據(jù)目錄是空的,所以也不存在這個(gè)問題。
rm /var/lib/mysql/ib_logfile0
rm /var/lib/mysql/ib_logfile1
看有兩個(gè)文件沒有,則touch下目錄和文件:
touch /var/log/mariadb/mariadb.log
chown -R mysql:mysql /var/log/mariadb
mkdir -p /var/run/mariadb
chown -R mysql:mysql /var/run/mariadb
啟動(dòng)下:
systemctl start mariadb
Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details
仍然報(bào)錯(cuò):
Process: 15688 ExecStart=/usr/local/mysql/bin/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (code=exited, status=1/FAILURE)
Process: 15661 ExecStartPre=/bin/sh -c [ ! -e /usr/local/mysql/bin/galera_recovery ] && VAR= || VAR=`/usr/local/mysql/bin/galera_recovery`; [ $? -eq 0 ] && systemctl set-environment _WSREP_START_POSITION=$VAR || exit 1 (code=exited, status=0/SUCCESS)
Process: 15659 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
Main PID: 15688 (code=exited, status=1/FAILURE)
Status: "MariaDB server is down"
Jan 07 10:42:43 localhost.localdomain mysqld[15688]: 2020-01-07 10:42:43 0 [Note] InnoDB: Starting shutdown...
Jan 07 10:42:43 localhost.localdomain mysqld[15688]: 2020-01-07 10:42:43 0 [ERROR] Plugin 'InnoDB' init function returned error.
Jan 07 10:42:43 localhost.localdomain mysqld[15688]: 2020-01-07 10:42:43 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
Jan 07 10:42:43 localhost.localdomain mysqld[15688]: 2020-01-07 10:42:43 0 [Note] Plugin 'FEEDBACK' is disabled.
Jan 07 10:42:43 localhost.localdomain mysqld[15688]: 2020-01-07 10:42:43 0 [ERROR] Unknown/unsupported storage engine: InnoDB
Jan 07 10:42:43 localhost.localdomain mysqld[15688]: 2020-01-07 10:42:43 0 [ERROR] Aborting
Jan 07 10:42:44 localhost.localdomain systemd[1]: mariadb.service: main process exited, code=exited, status=1/FAILURE
Jan 07 10:42:44 localhost.localdomain systemd[1]: Failed to start MariaDB 10.4.11 database server.
Jan 07 10:42:44 localhost.localdomain systemd[1]: Unit mariadb.service entered failed state.
運(yùn)行:journalctl -xe
查看: /usr/local/mysql/bin/mysqld 報(bào)錯(cuò)是沒有這個(gè)目錄,所以看下權(quán)限,更改下目錄的權(quán)限:
chown -R mysql:mysql /usr/local/mysql
啟動(dòng)成功!
總結(jié)
以上是生活随笔為你收集整理的linux mariadb 升级,Mariadb数据库更新的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是 信息系统工程监理
- 下一篇: 交换机当做路由器使用的两种方法