1.先卸载系统自带mysql与mariadb环境。

rpm -e --nodeps mariadb-libs
rpm -e mariadb-server --nodeps
yum -y remove mysql*
yum -y remove mariadb*

2.若是升级旧版本,则备份原数据库并且重命名原目录(也可以删除),若新安装直接跳第3步查看

2.1.进入数据库的bin目录下,我的是在/usr/local/mysql/bin下,密码为123456,则运行如下命令

./mysqldump -uroot -p123456 --all-databases > /usr/local/backup.sql

2.2.关闭数据库服务,有redis也可一并关闭

systemctl stop mariadb
systemctl stop redis

2.3.修改原目录,原安装目录在/usr/local/mysql 原配置文件在/etc/my.cnf

cd /usr/local
mv mysql/ mysql.bak
cd /usr/bin
mv mysql mysql.bak
cd /usr/lib64
mv mysql/ mysql.bak
cd /etc/
mv mysql/ mysql.bak
cd /var/log/
mv mariadb/ mariadb.bak

3.开始使用离线压缩包安装,首先去官网下对应版本,我这里以mariadb-11.2.2-linux-systemd-x86_64.tar.gz为例

下载地址      Download MariaDB Server - MariaDB.org

3.1使用ftp等工具上传mariadb-11.2.2-linux-systemd-x86_64.tar.gz到/usr/local目录下,开始安装

tar -zxvf mariadb-1X.X.X-linux-systemd-x86_64.tar.gz
mv mariadb-1X.X.X-linux-systemd-x86_64/ mysql
groupadd -r mysql 
useradd -r -g mysql mysql
chown -R mysql:mysql /usr/local/mysql
mkdir -p /usr/local/mysql/data
cd /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql/data
./scripts/mysql_install_db  --datadir=/usr/local/mysql/data  --user=mysql
mkdir /var/log/mariadb/
touch /var/log/mariadb/mariadb.log
setfacl -R -m u:mysql:rwx /var/log/mariadb/mariadb.log
##mv /etc/my.cnf /etc/my.cnf.bak
cp support-files/wsrep.cnf  /etc/my.cnf

3.2编辑配置文件,写入mysqld标签下,vi  /etc/my.cnf

character_set_server=utf8mb4 
collation-server=utf8mb4_unicode_ci 
init_connect='SET NAMES utf8mb4' 
skip-character-set-client-handshake=true 
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port		= 3306
socket		=/tmp/mysql.sock
max_connections=5000
innodb_file_per_table = on
skip-external-locking
lower_case_table_names=0
key_buffer_size = 384M
max_allowed_packet = 1M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
slow_query_log = on
long_query_time = 10 #设置统计时间阈值,sql执行超过这个时间即统计,单位是秒
slow_query_log_file = /tmp/slow.log #日志存放位置
thread_concurrency = 8

3.3 建立全局环境变量,做成系统服务设置开机自启,启动服务等。

echo 'export PATH=/usr/local/mysql/bin:$PATH' >  /etc/profile.d/mysql.sh #建环境变量
source /etc/profile.d/mysql.sh
cp support-files/mysql.server /etc/rc.d/init.d/Mariadb
chkconfig --add Mariadb #将服务加入开机自启列表
chkconfig Mariadb on    #开机自启
systemctl start Mariadb   
chkconfig --list Mariadb #查看是否安装成功
mysql -V && systemctl status Mariadb

若出现 mysql:error while loading shared libraries: libncurses.so.5: 或者mysql: error while loading shared libraries: libtinfo.so.5:的情况,错误的原因是数据库依赖的默认lib组件与系统的lib组件版本不一致,此时复制系统的改为数据库需要的版本号即可解决。

find / -name 'libncurses*'
cd /usr/lib64/
cp -ra libncurses.so.6 libncurses.so.5
find / -name 'libtinfo*'
cp -ra libtinfo.so.6 libtinfo.so.5

3.4初始化,安装成功。

进入mariadb的bin目录执行mysql_secure_installation设置root账号密码
cd /usr/local/mysql/bin
./mysql_secure_installation
或者./mysql_secure_installation --basedir=/usr/local/mysql
##敲回车
y
回车
y
输入两遍123456
删除匿名:y
不允许root远程:n
删除测试数据库:n
刷新表权限:y
mysql -uroot -p'123456'

4.异常断电导致数据库服务无法启动时处理步骤

4.1.在配置文件my.cnf里的[mysqld]下加入参数 innodb_force_recovery = 1 ,其中后面的值设置为1-6,如果1不能恢复,再逐步增加为2/3/4等。直到能启动为止!
注意:最高值为6,但当参数值为4,5,6时,数据库将变为只读模式。

[mysqld]
innodb_force_recovery = 1

4.2.将原有数据备份成sql文件,待会恢复时候要用

启动数据库
systemctl start mariadb

登录数据库
mysql -uroot -p123456

进入数据库安装目录的bin目录下
cd /usr/local/mysql
执行:
./mysqldump -uroot -p123456 --all-databases > /usr/local/alldatabases.sql

4.3关闭数据库,在配置文件/etc/my.cnf的【mysqld】标签下去掉innodb_force_recovery参数,加入skip-grant-tables跳过密码登录,清除已损坏的数据库文件。

关闭数据库
systemctl stop mariadb 

备份原data目录以防万一:
cp -r /usr/local/mysql/data/ usr/local/mysql/data_bak/
rm -rf /usr/local/mysql/data/*

修改/etc/my.cnf参数
vi /etc/my.cnf
[mysqld]
##innodb_force_recovery = 6
skip-grant-tables

进入 安装目录下初始化数据库
cd /usr/local/mysql
./scripts/mysql_install_db --user=mysql&

启动数据库
systemctl start mariadb

再次登录数据库
mysql -uroot -p123456
利用之前备份的alldatabases.sql文件恢复数据库
source /usr/local/alldatabases.sql

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐