mariadb安装可以分为dnf(yum)安装,或者二进制安装(自定义安装)
本文主要是指二进制安装的方式,该服务器主要用于mysql(mariadb)数据库的主从复制
在安装过程中出现的比较棘手的问题是
报错ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'
参考连接:https://blog.51cto.com/jschu/4323600
最后找到的原因,是因为没有创建软连接到/usr/local/mysql,在报错信息里mysqld的命令执行好像是从这里找的,没有深入研究,初步判断可能是改命令的默认路径是/usr/local/mysql,后续有时间研究后再来更新。
--20230313 wms项目的mariadb部署过程中再次遇到了一系列的问题,通过搜索返现与路径有关系,在mariadb的大多数路径中都是默认/usr/local/mysql,而不是mariadb,即使你修改其中的一两个文件也无济于事
--这次安装中安装了10.11.2,与10.6.9差异不大,主要还是前面遇到的这些问题
--思考一下为甚么喜欢二进制安装而不是,dnf安装,可能是这样安装的目录结构看起来更加清爽一些,出现问题更容易定位,也更容易了解软件的文件结构。可能还是我太菜了对linux不够熟悉
auhtor:lxfamn date:20240304 descrip:升级系统了,mariadb也升级一下吧,上次10.11不太成功,后来看了一下mariadb11又和mysql8.0.23对上了,最新的是maridb11.3.2试一下
http://lxfamn.cn/blog/?p=7682
http://lxfamn.cn/blog/?p=7677
http://lxfamn.cn/blog/?p=7680
记录一下安装过程,用于后续服务器安装配置
安装环境
openeuler对应centos8版本
一、 安装过程
卸载系统自带的mysql,之前安装等
#检查mariadb是否存在
[root@cdh01 local]# rpm -qa | grep mariadb
mariadb-libs-5.5.60-1.el7_5.x86_64
#卸载
[root@cdh01 local]# rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
[root@cdh01 local]# find / -name mysql
/var/lib/pcp/config/pmlogconf/mysql
/usr/lib64/mysql
/usr/share/mysql
[root@cdh01 local]# rm -rf /var/lib/pcp/config/pmlogconf/mysql
# 手动删除 数据库目录
[root@cdh01 local]# rm -rf /var/lib/mysql/
# 手动删除 数据库配置文件
[root@cdh01 local]# rm -rf /usr/share/mysql/
下载mariadb
wget https://mirrors.neusoft.edu.cn/mariadb/mariadb-11.3.2/bintar-linux-systemd-x86_64/mariadb-11.3.2-linux-systemd-x86_64.tar.gz
tar -xvf mariadb-11.3.2-linux-systemd-x86_64.tar.gz
将解压 MariaDB 移动到/usr/local/
mv mariadb-11.3.2-linux-systemd-x86_64 /usr/local/mariadb
创建 mysql 用户及用户组并更改所属的组和用户
groupadd mysql
useradd -g mysql mysql
chown -R mysql:mysql /usr/local/mariadb/
创建数据库存放路径,并授权
mkdir -p /usr/local/mariadb/data/mysql
chown mysql.mysql /usr/local/mariadb/data/mysql
新建配置文件my.cnf
新建配置文件 /etc/my.cnf,并添加以下配置
cd /etc
touch my.cnf
vim my.cnf
[client]
password = 你的密码
port = 3306
socket = /usr/local/mariadb/data/mysql.sock
[mysqld]
server-id=126
port = 3306
#添加
user = mysql
basedir = /usr/local/mariadb
datadir =/usr/local/mariadb/data
innodb_file_per_table = on
skip_name_resolve = on
socket=/usr/local/mariadb/data/mysql.sock
init_connect='SET collation_connection=utf8mb4_unicode_ci'
init_connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
#collation-server=utf8mb4_unicode_ci
skip-character-set-client-handshake
slow_query_log_file = /usr/local/mariadb/logs/slow-query.log
#expire_logs_days = 30
#slave_skip_errors = all
#auto_increment_offset = 1
#auto_increment_increment = 2
#修改
max_connections = 1500
ft_min_word_len = 1
default-storage-engine = InnoDB
#log-bin=/data/mysql/log/bin_log/mysql-bin
#server-id = 1
innodb_buffer_pool_size = 8G
innodb_log_file_size = 512M
[mysqld_safe]
open-files-limit = 8192
#添加
log-error=/usr/local/mariadb/logs/mysqld.log
pid-file=/usr/local/mariadb/logs/temp/mysqld.pid
安装 MariaDB 并初始化
./scripts/mysql_install_db --datadir=/usr/local/mariadb/data --user=mysql
Installing MariaDB/MySQL system tables in '/usr/local/mariadb/data' ...
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
...
配置启动服务
# 准备服务脚本,并启动服务
cp support-files/systemd/mariadb.service /etc/systemd/system/lxfamn-mariadb.service
ln -sv /usr/local/mariadb/ /usr/local/mysql
# 创建日志文件目录(不创建启动失败)
mkdir /var/log/mariadb
mkdir /var/run/mariadb
chown mysql:mysql /var/log/mariadb
chown mysql:mysql /var/run/mariadb
# 设置PATH路径并生效
echo 'PATH=/usr/local/mariadb/bin:$PATH' >> /etc/profile
source /etc/profile
sudo ln -s /usr/lib64/libncurses.so.6.2 /usr/lib64/libncurses.so.5
ln -s /usr/lib64/libtinfo.so.6.2 /usr/lib64/libtinfo.so.5
# 创建 /tmp/mysql.sock 软链接
ln -s /usr/local/mariadb/data/mysql.sock /tmp/mysql.sock
CREATE USER 'root'@'%' IDENTIFIED BY '密码';
FLUSH PRIVILEGES;
# 启动服务
systemctl enable mysqld.service
systemctl start mysqld
# 登录 mysql
[root@localhost mysql]# mysql
未经允许不得转载:lxfamn » maraidb 11.3.2 离线安装 二进制安装 centos9 rockylinux