MariaDB编译和安装

2023年 7月 15日 70.8k 0

 

编译安装MySQL-5.5

 

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

1,安装开发组件

[root@[node108] ~]# yum groupinstall"Development Tools" "Server Platform Development" –y

2,安装cmake

[root@[node108] ~]#yum –y install cmake

3,下载mariadb源码

[root@[node108] ~]# mget  mariadb-5.5.44.tar.gz

4,创建用户名和组

[root@[node108] ~]# groupadd -r -g 306mysql

[root@[node108] ~]# useradd -r -g 306 -u306 mysql

[root@[node108] ~]# id mysql

uid=306(mysql) gid=306(mysql) groups=306(mysql)

5,解开源码包

[root@[node108] ~]# tar xf mariadb-5.5.44.tar.gz

[root@[node108] ~]# cd mariadb-5.5.44

6,编译安装

[root@[node108]# mariadb-5.5.44]#cmake .-DCMAKE_INSTALL_PREFIX=/usr/local/Nmariadb-5.5.44 -DMYSQL_DATADIR=/mydata/data-DSYSCONFDIR=/etc -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=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8-DDEFAULT_COLLATION=utf8_general_ci

 

*****************************************************************************

*# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb-5.5.44\  安装路径                             

*         -DMYSQL_DATADIR=/mydata/data \     数据目录

*         -DSYSCONFDIR=/etc \                配置文件

*                -DWITH_INNOBASE_STORAGE_ENGINE=1 \  安装启用INNOBASE存储引擎

*         -DWITH_ARCHIVE_STORAGE_ENGINE=1 \         安装启用ARCHIVE

*         -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \               安装启用BLACKHOLE

*                -DWITH_READLINE=1 \                 支持READLINE

*                -DWITH_SSL=system \                 支持SSL

*                -DWITH_ZLIB=system \                支持ZLIB

*                -DWITH_LIBWRAP=0 \                  不使用LIBWRAP 控制    

*                -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \  mysql.cock文件位置

*                -DDEFAULT_CHARSET=utf8 \            默认字符集

*************************************************************************

 

[root@[node108]#make

[root@[node108]#make install

编译安装后切换到编译后的目录进行安装

[root@[node108] local]# cd Nmariadb-5.5.44/

[root@[node108] Nmariadb-5.5.44]# ll

total 220

drwxr-xr-x 2 root root   4096 Jun 19 23:18bin

-rw-r--r-- 1 root root  17987 Jun 10 04:25COPYING

-rw-r--r-- 1 root root  26545 Jun 10 04:25COPYING.LESSER

drwxr-xr-x 3 root root   4096 Jun 19 23:18data

-rw-r--r-- 1 root root   8245 Jun 10 04:25EXCEPTIONS-CLIENT

drwxr-xr-x 3 root root   4096 Jun 19 23:17include

-rw-r--r-- 1 root root   8694 Jun 10 04:25INSTALL-BINARY

drwxr-xr-x 3 root root   4096 Jun 19 23:18lib

drwxr-xr-x 4 root root   4096 Jun 19 23:19man

drwxr-xr-x 11 root root   4096 Jun 19 23:19 mysql-test

-rw-r--r-- 1 root root 108813 Jun 10 04:25 README

drwxr-xr-x 2 root root   4096 Jun 19 23:18scripts

drwxr-xr-x 27 root root   4096 Jun 19 23:18 share

drwxr-xr-x 4 root root   4096 Jun 19 23:19sql-bench

drwxr-xr-x 3 root root   4096 Jun 19 23:18support-files

[root@[node108] Nmariadb-5.5.44]#

[root@[node108] Nmariadb-5.5.44]# chown -Rroot.mysql ./*

[root@[node108] Nmariadb-5.5.44]# cd ..

[root@[node108] local]# ln -svNmariadb-5.5.44 mysql

`mysql/Nmariadb-5.5.44' ->`Nmariadb-5.5.44'

[root@[node108] local]# cd mysql/

 

 

 

 

 

将mysql安装至lvm,首先需要创建一个lvm

[root@[node108]#fdisk /dev/sdb

Command (m for help): n

Command action

  e   extended

  p   primary partition (1-4)

p

Partition number (1-4): 1

First cylinder (7859-15665, default 7859):

Using default value 7859

Last cylinder, +cylinders or +size{K,M,G}(7859-15665, default 15665): +20G

 

Command (m for help): t

Partition number (1-4): 3

Hex code (type L to list codes): 8e

Changed system type of partition 3 to 8e(Linux LVM)

[root@[node108]#partx–a /dev/sdb

[root@[node108]#pvcreate/dev/sdb3

[root@[node108]#vgcreatemyvg /dev/sdb3

[root@[node108]#lvcreate–L 10G –n mydata myvg

[root@[node108]#lvs

[root@[node108]#Mke2fs–t ext4 /dev/myvg/mydata

[root@[node108]#vim/etc/fstab

/dev/myvg/mydata    /mydata  ext4    defaults    0    0

[root@[node108]#mkdir/mydata/data

[root@[node108]#mount–a

[root@[node108]#chownmysql.mysql /mydata/data

7,开始初始化

[root@[node108]#cd/usr/local/mysql

[root@[node108] mysql]#scripts/mysql_install_db --user=mysql --datadir=/mydata/data

 

 

8,创建编辑配置文件!

[root@localhostmysql]# mkdir /etc/mysql

[root@localhostmysql]# cp support-files/my-large.cnf /etc/mysql/my.cnf

[root@localhostmysql]# vim /etc/mysql/my.cnf

在[mysqld]里面添加如下

datadir =/mydata/data   安装目录指定

innodb_file_per_table= NO

skip_name_resolve =NO     跳过名称解析的

9,添加mysql service服务

[root@localhostmysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld

[root@localhostmysql]# chmod +x /etc/rc.d/init.d/mysqld

[root@localhost mysql]#chkconfig --add mysqld

[root@localhostmysql]# chkconfig mysqld on

[root@localhostmysql]# service mysqld start

StartingMySQL....                                         [  OK  ]

[root@localhostmysql]# ss -tlp |grep :mysql

LISTEN     0     50                     *:mysql                    *:*        users:(("mysqld",44014,14))

 

给root用户添加密码,并且删除用户

[root@localhostmysql]# /usr/local/mysql/bin/mysql_secure_installation

[root@localhostmysql]# /usr/local/mysql/bin/mysql -uroot -p

Enter password:

Welcome to theMariaDB monitor.  Commands end with ; or\g.

Your MariaDBconnection id is 11

Server version:5.5.44-MariaDB-log Source distribution

 

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

 

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

 

MariaDB [(none)]> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema|

| mysql              |

| performance_schema|

+--------------------+

3 rows in set (0.03sec)

 

 

编译安装MySQL-5.5

使用cmake编译mysql-5.5

cmake指定编译选项的方式不同于make,其实现方式对比如下:

./configure           cmake .

./configure --help    cmake . -LH or ccmake .

 

指定安装文件的安装路径时常用的选项:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql

-DMYSQL_DATADIR=/data/mysql

-DSYSCONFDIR=/etc

 

默认编译的存储引擎包括:csv、myisam、myisammrg和heap。若要安装其它存储引擎,可以使用类似如下编译选项:

-DWITH_INNOBASE_STORAGE_ENGINE=1 编译innodb

-DWITH_ARCHIVE_STORAGE_ENGINE=1

-DWITH_BLACKHOLE_STORAGE_ENGINE=1

-DWITH_FEDERATED_STORAGE_ENGINE=1

 

若要明确指定不编译某存储引擎,可以使用类似如下的选项:

-DWITHOUT__STORAGE_ENGINE=1 

比如:

-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1

-DWITHOUT_FEDERATED_STORAGE_ENGINE=1

-DWITHOUT_PARTITION_STORAGE_ENGINE=1

 

如若要编译进其它功能,如SSL等,则可使用类似如下选项来实现编译时使用某库或不使用某库:

-DWITH_READLINE=1

-DWITH_SSL=system

-DWITH_ZLIB=system

-DWITH_LIBWRAP=0

 

其它常用的选项:

-DMYSQL_TCP_PORT=3306

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock

-DENABLED_LOCAL_INFILE=1

-DEXTRA_CHARSETS=all

-DDEFAULT_CHARSET=utf8

-DDEFAULT_COLLATION=utf8_general_ci

-DWITH_DEBUG=0

-DENABLE_PROFILING=1

 

 

 

如果想清理此前的编译所生成的文件,则需要使用如下命令:

make clean

rm CMakeCache.txt

 

 

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论