Centos7.5 编译安装mariadb10.2.25

安装环境
系统:CentOS 7.5
软件:MariaDB 10.2.25 官方下载地址 https://downloads.mariadb.org/interstitial/mariadb-10.2.25/source/mariadb-10.2.25.tar.gz/from/http%3A//mirrors.tuna.tsinghua.edu.cn/mariadb/
首先安装软件包和编译器:

	[root@mybcc ~]# yum 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 -y

创建MariaDB安装目录、数据库存放目录、建立用户和目录
先创建一个名为mysql且没有登录权限的用户和一个名为mysql的用户组,然后安装mysql所需的依赖库和依赖包,最后通过cmake进行安装的详细配置。

创建mysql用户组和数据库相关目录

​提前预定MariaDB的安装目录为/app/mysql并且数据目录为/data/mysql,赋予mysql用户权限

[root@mybcc ~]# mkdir /data/mysql -p

[root@mybcc ~]# useradd -r -s /sbin/nologin -d /data/mysql/ mysql

[root@mybcc ~]# chown mysql.mysql /data/mysql

删除CentOS 默认数据库配置文件

[root@mybcc ~]# find -H /etc/ | grep my.c 

/etc/my.cnf.d
/etc/my.cnf.d/mysql-clients.cnf
/etc/pki/tls/certs/make-dummy-cert
/etc/pki/tls/certs/renew-dummy-cert
/etc/my.cnf

[root@mybcc ~]# rm -rf /etc/my.cnf /etc/my.cnf.d/

[root@mybcc ~]#  find -H /etc/ | grep my.c

/etc/pki/tls/certs/make-dummy-cert

/etc/pki/tls/certs/renew-dummy-cert 

卸载系统自带mariadb-libs(查询若无略过)

[root@mybcc ~]# rpm -qa|grep mariadb*

mariadb-libs-5.5.60-1.el7_5.x86_64

[root@mybcc ~]# rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps

下载解压源码包(软件自行下载wget下载过慢)

解压

[root@mybcc ~]# tar xvf mariadb-10.2.25.tar.gz

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

编译安装

[root@mybcc ~]# cd mariadb-10.2.25/

[root@mybcc mariadb-10.2.25]# cmake . \

-DCMAKE_INSTALL_PREFIX=/app/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



提示:如果出错,执行rm -f CMakeCache.txt

[root@mybcc ~]# make && make install

注释版(拷贝来的以便自己理解,只为安装自觉略过)

cmake . \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \           [MySQL安装的根目录]
-DDEFAULT_CHARSET=utf8 \                            [设置默认字符集为utf8]
-DDEFAULT_COLLATION=utf8_general_ci \               [设置默认字符校对]
-DENABLED_LOCAL_INFILE=1 \                          [启用加载本地数据]
-DENABLE_DOWNLOADS=1 \                              [编译时允许自主下载相关文件]
-DEXTRA_CHARSETS=all \                              [使MySQL支持所有的扩展字符]
-DSYSCONFDIR=/etc \                                 [MySQL配置文件所在目录]
-DWITHOUT_TOKUDB=1 \
-DWITH_ARCHIVE_STPRAGE_ENGINE=1 \                   [MySQL的数据库引擎]
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \                   [MySQL的数据库引擎]
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \                 [MySQL的数据库引擎]
-DWITH_DEBUG=0 \                                    [禁用调试模式]
-DWITH_MEMORY_STORAGE_ENGINE=1 \                    [MySQL的数据库引擎]
-DWITH_MYISAM_STORAGE_ENGINE=1 \                    [MySQL的数据库引擎]
-DWITH_INNOBASE_STORAGE_ENGINE=1 \                  [MySQL的数据库引擎]
-DWITH_PARTITION_STORAGE_ENGINE=1  \                [MySQL的数据库引擎]
-DWITH_READLINE=1 \                                 [MySQL的readline library]
-DWITH_SSL=system \                                 [通讯时支持ssl协议]
-DWITH_ZLIB=system \                                [允许使用zlib library]
-DWITH_LOBWRAP=0 \
-DMYSQL_DATADIR=/data/mysql \                       [MySQL数据库文件存放目录]
-DMYSQL_USER=mysql \                                [MySQL用户名] 
-DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock \       [MySQL的通讯目录]
-DMYSQL_TCP_PORT=3306 \                             [MySQL的监听端口]

-DMYSQL_MAINTAINER_MODE=0

准备环境变量

[root@mybc cprofile.d]# echo 'PATH=/app/mysql/bin:$PATH' > /etc/profile.d/mysql.sh

[root@mybc cprofile.d]# . /etc/profile.d/mysql.sh

生成数据库文件(使用用户执行脚本, 安装数据库到数据库存放目录)

[root@mybc ~]#cd /app/mysql/
[root@mybc mysql]#scripts/mysql_install_db --datadir=/data/mysql/ --user=mysql

准备配置文件(>拷贝mariadb安装目录下 support-files目录下的文件wsrep.cnf到/etc目录并重命名为my.cnf)

[root@mybc ~]#cp /app/mysql/support-files/my-huge.cnf /etc/my.cnf

准备启动脚本

[root@mybc ~]#cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld

启动服务

[root@mybc ~]#chkconfig --add mysqld ;service mysqld start

初始化MariaDB

[root@mybc ~]# ./bin/mysql_secure_installation

以下提示:

Enter current password for root (enter for none):   输入当前root密码(没有输入)

Set root password? [Y/n]    设置root密码?(是/否)

New password:   输入新root密码

Re-enter new password:      确认输入root密码

Password updated successfully!      密码更新成功

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

默认情况下,MariaDB安装有一个匿名用户,
允许任何人登录MariaDB而他们无需创建用户帐户。
这个目的是只用于测试,安装去更平缓一些。
你应该进入前删除它们生产环境。

Remove anonymous users? [Y/n]       删除匿名用户?(是/否)

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

通常情况下,root只应允许从localhost连接。
这确保其他用户无法从网络猜测root密码。

Disallow root login remotely? [Y/n]     不允许root登录远程?(是/否)

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

默认情况下,MariaDB提供了一个名为“测试”的数据库,任何人都可以访问。
这也只用于测试,在进入生产环境之前应该被删除。

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

重新加载权限表将确保所有到目前为止所做的更改将立即生效。

Reload privilege tables now? [Y/n]      现在重新加载权限表(是/否)

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

全部完成!如果你已经完成了以上步骤,MariaDB安装现在应该安全。

Thanks for using MariaDB!

启动MariaDB服务

[root@mybc ~]# systemctl restart mysqld

查看MariaDB服务状态(开启状态)

[root@mybc ~]# systemctl status mysqld
● mysqld.service - LSB: start and stop MariaDB
   Loaded: loaded (/etc/rc.d/init.d/mysqld; bad; vendor preset: disabled)
   Active: active (exited) since Sat 2019-08-10 21:24:46 CST; 7s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 7702 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=0/SUCCESS)

Aug 10 21:24:46 mybcc systemd[1]: Starting LSB: start and stop MariaDB...
Aug 10 21:24:46 mybcc mysqld[7702]: Starting MariaDB[  OK  ]
Aug 10 21:24:46 mybcc systemd[1]: Started LSB: start and stop MariaDB.
Aug 10 21:24:46 mybcc mysqld[7702]: 190810 21:24:46 mysqld_safe Logging to '/da...'.
Aug 10 21:24:46 mybcc mysqld[7702]: 190810 21:24:46 mysqld_safe A mysqld proces...ts
Hint: Some lines were ellipsized, use -l to show in full.
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

私有运维

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值