MariaDB 源码编译安装

2023-05-16

1、安装编译所需软件包

yum -y install bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel gcc gcc-c++ cmake ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel

2、准备用户和数据目录

useradd -r -s /sbin/nologin mysql
mkdir -p /data/mysql
chown -R mysql:mysql /data
tar xvf mariadb-10.4.12.tar.gz

3、 cmake 编译安装

cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译

cd mariadb-10.4.12/

cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci

make -j [cpunumber] && make install
提示:如果出错,执行rm -f CMakeCache.txt

4、修改权限

chown -R mysql:mysql  /usr/local/mysql/

5、 准备配置文件

[root@centos72-test1 mysql]# cat /etc/my.cnf
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#skip-name-resolve
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/data/mysql
# 允许最大连接数
max_connections=2000
log-error=/var/log/mysqld.log
#pid-file=/var/run/mysqld/mysqld.pid
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
innodb_buffer_pool_size = 1G # (adjust value here, 50%-70% of total RAM)
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 1 # may change to 2 or 0
innodb_flush_method = O_DIRECT
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
-------------------
[root@centos72-test1 mysql]# touch /var/log/mysqld.log
[root@centos72-test1 mysql]# chown mysql:mysql /var/log/mysqld.log

6、创建数据库文件

cd /usr/local/mysql/
./scripts/mysql_install_db --datadir=/data/mysql --user=mysql

7、准备服务脚本,并启动服务

Centos6
-------------
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
service mysqld start
-------------
Centos7
-------------
#vim /usr/lib/systemd/system/mysql.service

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
#Restart=on-failure
#RestartPreventExitStatus=1
#PrivateTmp=false
----------
[root@centos72-test1 mysql]# systemctl  start mysql
[root@centos72-test1 mysql]# systemctl  status mysql
● mysql.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysql.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2020-05-06 15:31:14 CST; 6s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
Main PID: 3462 (mysqld)

[root@centos72-test1 mysql]# systemctl  enable mysql
Created symlink from /etc/systemd/system/multi-user.target.wants/mysql.service to /usr/lib/systemd/system/mysql.service.

8、添加环境变量

echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh
-----------------
[root@centos72-test1 local]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 10.4.12-MariaDB MariaDB Server

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

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

MariaDB [(none)]> quit
Bye

9、安全初始化

/usr/local/mysql/bin/mysql_secure_installation

Note:执行完安全初始化脚本 之后,如果发现 直接执行mysql 依旧可以登录,此时再次修改下密码即可
Unix Socke插件认证忽略密码

[root@centos72-test1 ~]# mysqladmin -u root -p  password '123456'

MariaDB [mysql]> select user,host,password,plugin from user;
+-------+-----------+-------------------------------------------+-----------------------+
| User  | Host      | Password                                  | plugin                |
+-------+-----------+-------------------------------------------+-----------------------+
| root  | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | mysql_native_password |
| mysql | localhost | invalid                                   | mysql_native_password |
+-------+-----------+-------------------------------------------+-----------------------+
2 rows in set (0.001 sec)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MariaDB 源码编译安装 的相关文章

随机推荐

  • 高性能无锁队列 Disruptor 初体验

    原文地址 xff1a haifeiWu和他朋友们的博客 博客地址 xff1a www hchstudio cn 欢迎转载 xff0c 转载请注明作者及出处 xff0c 谢谢 xff01 最近一直在研究队列的一些问题 xff0c 今天楼主要分
  • MYSQL快速导入大量数据 - LOAD DATA INFILE

    问题背景 xff1a 在做性能测试时 xff0c 通常需要根据业务模型在数据库中预置大量数据 我一开始的做法是使用python生成INSERT INTO语句的SQL脚本后 xff0c 再导入对应数据库 使用中会发现速度很慢 xff0c 10
  • Postman使用教程 - 导入请求(Import)

    Postman是一个有着图形化界面的API请求模拟平台 xff0c 在构造请求时最常见的莫过于手动在对应的输入框中填入相应的内容 xff1a 根据被测HTTP请求的Method URL Headers Request Params Body
  • Daily Cost 介绍

    Daily Cost是我为了学习前后端开发的产出成果 从应用名可以看出是一个记账本应用 xff0c 主要参考了鲨鱼记账 xff0c 我从中挑选了一部分核心功能来自己开发实现 1 功能模块 作为一个正经的记账本应用 xff0c 肯定要能满足用
  • zabbix5.4 如何配置报警一次

    如果小伙伴们在认真跟着大叔配置zabbix的话 xff0c 相信你现在已经至少配置好了自己的邮件报警了 可是你可能正在和我一样陷入到一个新的烦恼之中 xff0c 那就是zabbix 邮件轰炸机 xff08 呵呵 xff0c 暂时这么叫吧 x
  • Docker安装使用MySQL8

    1 下载image span class token function docker span pull mysql 也可以指定版本 xff1a docker pull mysql 5 7 xff0c 未指定时为latest 2 查看下载到
  • 使用colima替代docker-desktop

    本文使用操作系统为Mac OS 彻底和docker desktop说再见 brew uninstall docker cask cd rm rf docker 安装 brew update brew install docker colim
  • mfc 获取网卡名字

    void CGetSysInfo GetInterFaceName CString amp InterfaceName int pNum POSITION pos 61 Interfaces FindIndex pNum if pos 61
  • 关于.net连接数据获取数据失败的原因

    1 问题情景 报错提示 System InvalidCastException 类型的异常在 Oracle ManagedDataAccess dll 中发生 xff0c 但未在用户代码中进行处理 其他信息 指定的转换无效 sql语句执行正
  • 服务启动时报错:1053服务没有及时响应启动或控制请求

    问题 xff1a 替换dll文件后 xff0c 自定义服务启动时报错 xff1a 1053服务没有及时响应启动或控制请求 排查原因 xff1a 可能是程序启动缺少某些dll文件 解决方案 xff1a 1 使用depends依赖工具查看新增的
  • mysql4.0 新建用户报错ERROR 1064语法错误

    mysql4 0 新建用户执行 xff1a create user 39 test1 39 64 39 localhost 39 identified by 39 123456 39 报错ERROR 1064语法错误 百度查询报错无果 xf
  • mysql4报错:ERROR 1133: Can‘t find any matching row in the user table

    mysql4新建用户后修改密码报错 xff1a ERROR 1133 Can 39 t find any matching row in the user table 查看mysql user表中是否存在ttt0405 64 localho
  • ERROR 1 (HY000): Can‘t create/write to file ‘D:\data_3306\Temp\#sql590_1_2.MYI‘

    mysql在查询表结构 xff08 比如desc table1 xff09 xff0c 报错 xff1a ERROR 1 HY000 Can 39 t create write to file 39 D data 3306 Temp sql
  • 本地 IDEA 卡死了!我把它跑在 Linux 服务器上!

    引言 2021年底 xff0c JetBrains 推出了 Jetbrains Gateway 工具 xff0c 这是一款远程开发 Client 并且支持了 JetBrains 全家桶 xff0c 通过 Jetbrains Gateway
  • centos7中puppeteer的相关错误处理

    1 error while loading shared libraries libatk bridge 2 0 so 0 解决 xff1a yum install at spi2 atk y 2 error while loading s
  • zabbix 5.4 自定义模板

    如果你是使用zabbix的新手的话 xff0c 并不建议去自定义一套模板 xff0c 因为zabbix自带的模板就已经能够实现80 多的应用场景了 如果你对zabbix已经有了比较深刻的理解 xff0c 感觉系统自带的一些模板里有太多你用不
  • SpringBoot出现找不到或无法加载主类解决办法

    启动SpringBoot项目时 xff0c 出现了找不到或无法加载主类的提示 xff0c 解决的方法有两种情况 1 程序主入口的目录位置不正确 需要确定程序主入口的Application类是否和其余的文件在同一目录结构 如果不一致 xff0
  • Golang中interface类型转string类型

    Golang中interface类型转string类型 Strval 获取变量的字符串值 浮点型 3 0将会转换成字符串3 34 3 34 非数值或字符类型的变量将会被转换成JSON格式字符串 func Strval value inter
  • unsigned char与char 转换

    方法一 xff1a 不转换为char xff0c 转换为QString类型 xff1a span class hljs keyword unsigned span span class hljs keyword char span code
  • MariaDB 源码编译安装

    1 安装编译所需软件包 yum y install bison bison devel zlib devel libcurl devel libarchive devel boost devel gcc gcc c 43 43 cmake