准备文件源文件/app/mariadb-10.2.12.tar.gz

cd /app/

tar xf mariadb-10.2.12.tar.gz

cd  mariadb-10.2.12

mkdir /mysqldb

cmake . \
-DCMAKE_INSTALL_PREFIX=/app/mysql \            主程序目录
-DMYSQL_DATADIR=/mysqldb/ \      数据库目录
-DSYSCONFDIR=/etc \                    配置文件目录
-DMYSQL_USER=mysql \          指定的所属用户
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DMYSQL_UNIX_ADDR=/app/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1

  安装development tools,gnutls-devel,ncurses-devel, cmake,ibaio-devel,openssl-devel,libxml2-devel组件,减少报错

  发生错误,需要删除文件夹,重新解压,再安装

make & make install

echo 'PATH=/app/mysql/bin/:$PATH' > /etc/profile.d/mysql.sh    将脚本路径写入

/app/mysql/scripts/mysql_install_db  --basedir=/app/mysql --datadir=/mysqldb/3306/data --user=mysql   制作数据库,指定mysql的用户

cp /app/mysql/support-files/my-huge.cnf  /etc/my.cnf   重新制作配置文件,以huge.cnf模板文件修改

  vim /etc/my.cnf

  datadir=/mysqldb/3306/data            在[mysqld]下面添加行,位置不要错

cp /app/mysql/support-files/mysql.server  /etc/init.d/mysqld

  chkconfig --add mysqld

  chown -R mysql.mysql /mysqldb/3306/

  chgrp -R mysql /app/mysql/

  chmod 775 /app/mysql/         重点!! 因为启动服务要在路径下创建sock为文件,如果没有权限会报错,启动失败

第二个实例安装:

  /app/mysql/scripts/mysql_install_db  --basedir=/app/mysql --datadir=/mysqldb/3307/data --user=mysql     安装数据库

  cp /etc/my.cnf    /mysqldb/3307          

  vim /mysqldb/3307/my.cnf      制作配置文件

    将所有的3306改为3307  

  [mysql_safe]                 在文件最下面增加日志文件路径
  log-error=/mysqldb/3307/mariadb.log
  pid-file=/mysqldb/3307/mariadb.pid

  vim /mysql/3307/mysqld        添加启动脚本,修改其中的路径项

#!/bin/bash
rt=
mysql_user="root"
mysql_pwd=""
cmd_path="/app/mysql/bin"
mysql_basedir="/mysqldb"
mysql_sock="${mysql_basedir}/${port}/mysql.sock" function_start_mysql()
{
if [ ! -e "$mysql_sock" ];then
printf "Starting MySQL...\n"
          ${cmd_path}/mysqld_safe --defaults-file=${mysql_basedir}/${port}/my.cnf &> /dev/null &
else
printf "MySQL is running...\n"
exit
fi
} function_stop_mysql()
{
if [ ! -e "$mysql_sock" ];then
printf "MySQL is stopped...\n"
exit
else
printf "Stopping MySQL..\n"
${cmd_path}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S ${mysql_sock} shutdown
fi
} function_restart_mysql()
{
printf "Restarting MySQL...\n"
if [ ! -e "$mysql_sock" ];then
function_start_mysql
exit
fi
function_stop_mysql
sleep
function_start_mysql
} case $ in
start)
function_start_mysql
;;
stop)
function_stop_mysql
;;
restart)
function_restart_mysql
;;
*)
printf "Usage: ${mysql_basedir}/${port}/bin/mysqld {start|stop|restart}\n"
esac

  chmod 700 /mysqldb/3307/mysqld

  /mysqldb/3307/mysqld  start

  失败/

  原因是/mysqldb/3307所属组为root,mysql用户没有写权限

  解决:chown  -R mysql.mysql /mysqldb/

  再启动成功

  在不能启动的时候可以手动输入路径启动查看项目在哪一步出问题

  /app/mysql/bin/mysqld_safe  --defaults-file=/mysqldb/3307/my.cnf

第三个实例的安装:

  /app/mysql/scripts/mysql_install_db  --basedir=/app/mysql --datadir=/mysqldb/3308/data --user=mysql     制作数据库文件

  chown -R mysql.mysql /mysqldb/

  cp /mysqldb/3307/{mysqld,my.cnf}  /mysqldb/3308/

  vim mysqld   修改端口号为3308

  vim my.cnf    修改端口号为3308

  /mysqldb/3308/mysqld start

   

在my.cnf里的client项里可以添加自己登陆的账号密码,可以免账户密码登陆

user=root

password=centos

mariadb源码编译安装及多实例的更多相关文章

  1. 源码编译安装MySQL8.0

    源码编译安装MySQL8.0 0.前期准备条件 查看linux的版本 [root@mysql etc]# cat /etc/redhat-release CentOS Linux release 7. ...

  2. CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境

    CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境 什么是LNMP? LNMP(别名LEMP)是指由Linux, Nginx, MySQL/MariaDB, PHP/ ...

  3. Httpd服务进阶知识-LAMP源码编译安装

    Httpd服务进阶知识-LAMP源码编译安装 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 想必大家都知道,动态资源交给fastcgi程序处理,静态资源依旧由httpd服务器处理  ...

  4. Dubbo入门到精通学习笔记(十九):MySQL源码编译安装、MySQL主从复制的配置

    文章目录 MySQL 源码编译安装(CentOS-6.6+MySQL-5.6) 一.服务器配置: 二.源码安装 MySQL5.6.26: MySQL主从复制的配置 环境 依赖课程 MySQL 主从复制 ...

  5. centos7源码编译安装lamp/lnmp

    centos7源码编译安装lamp/lnmp 进程:是包工头(相当于是个门,只管开门关门,不管门内的事儿) 线程:是各种工种(cpu调度的是线程) 进程 是一件事情, 线程 是 同一个时间范围内 同时 ...

  6. 源码编译安装MySQL8.0.20

    1 概述 本文章主要讲述了如何从源码编译安装MySQL社区版8.0.20,首先会介绍一些编译安装的相关知识,然后开始编译安装 2 源码编译安装的相关知识 2.1 make与configure make ...

  7. WordPress安装篇(5):源码编译安装LNMP并部署WordPress

    与YUM方式安装相比,源码编译安装方式更灵活,安装过程中能自定义功能和参数,特别是在批量部署服务器又要求软件版本及配置一致时,源码编译安装的优势很明显.本文介绍如何通过源码编译方式安装Nginx1.1 ...

  8. Mysql5.7.34 数据库源码编译安装

    Mysql 数据库源码编译安装 MySQL是一个关系型数据库管理系统,关系型数据库是将数据保存在不同的表中,而非将所有数据放在一个大仓库内,这样就加快了速度并提高了灵活性.由于其体积小.速度快.总体拥 ...

  9. SSH/SSL 源码编译安装简易操作说明

    环境:CentOS 6.7 安全加固需求,由于某盟扫描系统主机有SSL系列漏洞,客户要求必须修复: 解决方案:将SSH/SSL升级到最新版本,删除SSL旧版本(实测不删除旧版本某盟扫描无法通过). 当 ...

随机推荐

  1. 百度BAE数据库连接问题

    今天第一次使用百度的开发平台BAE,按照入门文档上的操作一步步来,进行的很顺利,可是我在上传了一个cms系统后,进行安装时,卡在了数据库连接这个地方,弄了一下午,终于有了结果,在这里记录起来,希望能帮 ...

  2. Cannot convert value '0000-00-00 00:00:00' from column 1 to TIMESTAMP解决办法

    在Mysql数据库中使用DATETIME类型来存储时间,使用JDBC中读取这个字段的时候,应该使用 ResultSet.getTimestamp(),这样会得到一个java.sql.Timestamp ...

  3. 硬盘的基础知识-SSD

    硬盘有三类:HDD(机械硬盘),SSD(固态硬盘),HHD(混合硬盘) 原理: HDD:磁性碟片 SSD: 闪存颗粒 HHD:磁性碟片的基础上加上了闪存颗粒. 这里对HDD,HHD不加说明,只对SSD ...

  4. [LeetCode]17. Letter Combinations of a Phone Number电话号码的字母组合

    Given a string containing digits from 2-9 inclusive, return all possible letter combinations that th ...

  5. webpack-webpackConfig-配置说明-多页面

    入口文件entry 配置 /* 例子: 项目目录结构: ├─src # 当前项目的源码 ├─pages # 各个页面独有的部分,如入口文件.只有该页面使用到的css.模板文件等 │ ├─alert # ...

  6. thinkphp中怎么判断是手机端访问还是pc端访问?

    function isMobile() { // 如果有HTTP_X_WAP_PROFILE则一定是移动设备 if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])) r ...

  7. ArcGIS数据存储的方式

    工作空间文件夹和地理数据库为存储和管理ArcGIS地理信息提供了主要容器.工作空间文件夹只是磁盘上的普通文件夹,它可保存大量的文件地理数据库.个人地理数据库.基于文件的数据集以及一系列ArcGIS文档 ...

  8. Struts2_HelloWorld_2

    设置 tomcat 的位置 (jre:并不是jdk) 打开 struts2目录:apps 示例程序docs 文档lib 类库src 源码 打开 apps 目录下的 struts2-blank.war ...

  9. Java项目性能瓶颈分析及定位(八)——Java线程堆栈分析(五)

    对于CPU而言,常见的瓶颈主要有两种:服务器的压力很小,但是CPU的利用率却很高,这样的性能瓶颈相对比较容易定位(好比我只是说了你一句,你就哭了,你的弱点立马就暴露出来了):给服务器施加的压力很大,但 ...

  10. PHP : 封装Mysqli的连接、关闭和增改查(面向过程)

    废话不多说,直接上图和案例:(看行数进行拼接) 注意:连接数据库中,因为用了$CONNECT全局变量,所以我们的连接数据库封装方法必须要执行了才能获取到此全局变量的值 所引入的数据库文件(databa ...