CentOS7.3编译安装MariaDB10.2.6



1. 删除CentOS7.3默认数据库配置文件

  • 查看默认数据库配置文件

[root@localhost ~]# find -H /etc/ | grep my.c/etc/pki/tls/certs/make-dummy-cert/etc/pki/tls/certs/renew-dummy-cert/etc/my.cnf.d/etc/my.cnf.d/mysql-clients.cnf/etc/my.cnf
  • 删除默认数据库配置文件

[root@localhost ~]# rm -rf /etc/my.cnf /etc/my.cnf.d/
  • 再次查看默认数据库配置文件

[root@localhost ~]# find -H /etc/ | grep my.c/etc/pki/tls/certs/make-dummy-cert/etc/pki/tls/certs/renew-dummy-cert

到目前为止, 系统最小化安装自带的数据库配置文件已经删除干净了!

2. 卸载系统自带mariadb-libs

  • 查询

[root@localhost ~]# rpm -qa|grep mariadb-libs
mariadb-libs-5.5.52-1.el7.x86_64
  • 卸载

[root@localhost ~]# rpm -e mariadb-libs-5.5.52-1.el7.x86_64 --nodeps

安装相关包

[root@localhost ~]# yum -y install libaio [root@localhost ~]# yum -y install libaio-devel [root@localhost ~]# yum -y install bison [root@localhost ~]# yum -y install bison-devel [root@localhost ~]# yum -y install zlib-devel [root@localhost ~]# yum -y install openssl[root@localhost ~]# yum -y install openssl-devel [root@localhost ~]# yum -y install ncurses [root@localhost ~]# yum -y install ncurses-devel[root@localhost ~]# yum -y install libcurl-devel[root@localhost ~]# yum -y install libarchive-devel [root@localhost ~]# yum -y install boost [root@localhost ~]# yum -y install boost-devel [root@localhost ~]# yum -y install lsof [root@localhost ~]# yum -y install wget[root@localhost ~]# yum -y install gcc [root@localhost ~]# yum -y install gcc-c++[root@localhost ~]# yum -y install make[root@localhost ~]# yum -y install cmake[root@localhost ~]# yum -y install perl[root@localhost ~]# yum -y install kernel-headers[root@localhost ~]# yum -y install kernel-devel [root@localhost ~]# yum -y install pcre-devel

3. 创建家目录存放软件包目录

[root@localhost ~]# mkdir soft[root@localhost ~]# cd soft

4. MariaDB官网复制源码包链接地址并下载解压

  • 下载

[root@localhost soft]# wget https://downloads.mariadb.org/interstitial/mariadb-10.2.6/source/mariadb-10.2.6.tar.gz
  • 解压

[root@localhost soft]# tar -zxvf mariadb-10.2.6.tar.gz

5. 创建MariaDB安装目录、数据库存放目录、建立用户和目录

这里提前预定MariaDB的安装目录为/usr/local/mysql并且数据库目录为/data/mysql,这里要建立系统用户及组和数据库存放目录,并且将数据库存放目录赋予mysql用户及组权限,操作如下:

请注意特别说明一下:这里说的数据库目录是指的具体数据库存储文件, 而不是安装文件!

  • 创建mysql系统用户组

[root@localhost soft]# groupadd -r mysql
  • 创建系统用户mysql并加入到mysql系统用户组

[root@localhost soft]# useradd -r -g mysql -s /sbin/nologin -d /usr/local/mysql -M mysql

以下是上面创建系统用户mysql的各个参数说明:

-r: 添加系统用户( 这里指将要被创建的系统用户mysql )

-g: 指定要创建的用户所属组( 这里指添加到新系统用户mysql到mysql系统用户组 )

-s: 新系统帐户的登录shell( /sbin/nologin 这里设置为将要被创建系统用户mysql不能用来登录系统 )

-d: 新帐户的主目录( 这里指定将要被创建的系统用户mysql的家目录为 /usr/local/mysql )

-M: 不要创建用户的主目录( 也就是说将要被创建的系统用户mysql不会在 /home 目录下创建 mysql 家目录 )

  • 创建maria安装目录

[root@localhost soft]# mkdir -p /usr/local/mysql
  • 创建数据库存放目录

[root@localhost soft]# mkdir -p /data/mysql
  • 改变数据库存放目录所属用户及组为 mysql:mysql

[root@localhost soft]# chown -R mysql:mysql /data/mysql

执行编译安装

> 进入到解压后的源码包文件夹

[root@localhost soft]# cd mariadb-10.2.6

> 输入编译参数

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
 -DMYSQL_DATADIR=/data/mysql \ -DSYSCONFDIR=/etc \ -DWITHOUT_TOKUDB=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STPRAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWIYH_READLINE=1 \ -DWIYH_SSL=system \ -DVITH_ZLIB=system \ -DWITH_LOBWRAP=0 \ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci> 如果编译失败请删除CMakeCache.txt

[root@localhost soft]# rm -f CMakeCache.txt

> 让指令重新执行,否则每次读取这个文件,命令修改正确也是报错

> cmake没问题,可以编译并且安装了: make && make install 时间会有点长根据个人机器吧,你可以干别的事情去!

[root@localhost soft]# make && make install

> 执行完成也就是安装完成了, 不过请注意, 这只是安装了, 并没有启动, 启动不成功等于没安装, 不能用也是徒劳无功不是?

6. 配置MariaDB

> 进入到 MariaDB 安装目录

[root@localhost ~]# cd /usr/local/mysql/

> 使用 `mysql` 用户执行脚本, 安装数据库到数据库存放目录

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

> 输出以下信息:
Installing MariaDB/MySQL system tables in '/data/mysql' ...
OKTo start mysqld at boot time you have to copysupport-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !To do so, start the server, then issue the following commands:'./bin/mysqladmin' -u root password 'new-password''./bin/mysqladmin' -u root -h localhost.localdomain password 'new-password'Alternatively you can run:'./bin/mysql_secure_installation'which will also give you the option of removing the test
databases and anonymous user created by default.  This isstrongly recommended for production servers.

See the MariaDB Knowledgebase at http://mariadb.com/kb or theMySQL manual for more instructions.

You can start the MariaDB daemon with:
cd '.' ; ./bin/mysqld_safe --datadir='/data/maria'You can test the MariaDB daemon with mysql-test-run.pl
cd './mysql-test' ; perl mysql-test-run.pl

Please report any problems at http://mariadb.org/jiraThe latest information about MariaDB is available at http://mariadb.org/.You can find additional information about the MySQL part at:
http://dev.mysql.comConsider joining MariaDB's strong and vibrant community:
https://mariadb.org/get-involved/

6. 复制MariaDB配置文件到/etc目录

> 进行到 MariaDB 安装目录

[root@localhost ~]# cd /usr/local/mysql/

> 拷贝support-files目录下的文件my-large.cnf到/etc目录并重命名为my.cnf[root@localhost mysql]# cp support-files/my-large.cnf /etc/my.cnf

7. 创建启动脚本

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

8. 启动mysqld服务

[root@localhost mysql]# /etc/rc.d/init.d/mysqld start

9. 配置环境变量, 以便在任何目录下输入mysql

> 打开并新建文件

[root@localhost mysql]# vim /etc/profile.d/mysql.sh> 输入以下内容

export PATH=$PATH:/usr/local/mysql/bin/> 保存并退出:wq> 为脚本赋于可执行权限

[root@localhost mysql]# chmod 0777 /etc/profile.d/mysql.sh> 进行mysql.sh脚本所在目录, 并执行脚本, 以立即生效环境变量

[root@localhost mysql]# source /etc/profile.d/mysql.sh

10. 初始化MariaDB

    > 运行MariaDB初始化脚本

[root@localhost mysql]# ./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 anyoneto log into MariaDB without having to have a user account created forthem.  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'.  Thisensures 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 canaccess.  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 MariaDBinstallation should now be secure.

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

Thanks for using MariaDB!

感谢使用MariaDB!

编译安装MariaDB后所有配置操作

[root@localhost ~]# cd /usr/local/mysql/
[root@localhost mysql]# scripts/mysql_install_db --user=mysql --datadir=/data/mysql/
Installing MariaDB/MySQL system tables in '/data/mysql/' ...
OK

To start mysqld at boot time you have to copysupport-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !
To do so, start the server, then issue the following commands:

'./bin/mysqladmin' -u root password 'new-password'
'./bin/mysqladmin' -u root -h localhost.localdomain password 'new-password'

Alternatively you can run:
'./bin/mysql_secure_installation'which will also give you the option of removing the testdatabases and anonymous user created by default.  This is
strongly recommended for production servers.

See the MariaDB Knowledgebase at http://mariadb.com/kb or theMySQL manual for more instructions.

You can start the MariaDB daemon with:cd '.' ; ./bin/mysqld_safe --datadir='/data/mysql/'

You can test the MariaDB daemon with mysql-test-run.plcd './mysql-test' ; perl mysql-test-run.plPlease report any problems at http://mariadb.org/jiraThe latest information about MariaDB is available at http://mariadb.org/.You can find additional information about the MySQL part at:
http://dev.mysql.comConsider joining MariaDB's strong and vibrant community:
https://mariadb.org/get-involved/[root@localhost mysql]# cp support-files/my-large.cnf /etc/my.cnf
[root@localhost mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@localhost mysql]# /etc/rc.d/init.d/mysqld start
Reloading systemd:                                         [  OK  ]
Starting mysqld (via systemctl):                           [  OK  ]
[root@localhost mysql]# touch /etc/profile.d/mysql.sh[root@localhost mysql]# echo 'export PATH=$PATH:/usr/local/mysql/bin/' > /etc/profile.d/mysql.sh [root@localhost mysql]# chmod 0777 /etc/profile.d/mysql.sh [root@localhost mysql]# source /etc/profile.d/mysql.sh [root@localhost mysql]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 10.2.6-MariaDB-log Source distributionCopyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

https://segmentfault.com/a/1190000009909776