Oracle Linux 7.1中安装MariaDB

在Oracle Linux 7.1中安装Mariadb 10.0.38,因为Mariadb是Mysql的分支,安装操作基本类似。
1.首先下载安装介质mariadb-10.0.38-linux-glibc_214-x86_64.tar.gz 并将其上传到服务器的/soft目录

2.创建用户与用户组

[root@cs1 soft]# groupadd mysql

[root@cs1 soft]# useradd -g mysql mysql

3.将介质解压到/usr/local/目录下

[root@cs1 soft]# cd /usr/local

[root@cs1 local]# gunzip < /soft/mariadb-10.0.38-linux-glibc_214-x86_64.tar.gz | tar xvf -
mariadb-10.0.38-linux-glibc_214-x86_64/
mariadb-10.0.38-linux-glibc_214-x86_64/man/
mariadb-10.0.38-linux-glibc_214-x86_64/man/man8/
mariadb-10.0.38-linux-glibc_214-x86_64/man/man8/mysqld.8
........省略..........

[root@cs1 local]# ls -lrt
总用量 4
drwxr-xr-x.  2 root root    6 5月   8 2014 src
drwxr-xr-x.  2 root root    6 5月   8 2014 sbin
drwxr-xr-x.  2 root root    6 5月   8 2014 libexec
drwxr-xr-x.  2 root root    6 5月   8 2014 lib64
drwxr-xr-x.  2 root root    6 5月   8 2014 lib
drwxr-xr-x.  2 root root    6 5月   8 2014 include
drwxr-xr-x.  2 root root    6 5月   8 2014 games
drwxr-xr-x.  2 root root    6 5月   8 2014 etc
drwxr-xr-x.  5 root root   46 10月 12 2017 share
drwxr-xr-x.  2 root root   46 3月   9 2018 bin
drwxrwxr-x  13 1021 1004 4096 1月  31 02:40 mariadb-10.0.38-linux-glibc_214-x86_64

4.创建软链接

[root@cs1 local]# ln -s mariadb-10.0.38-linux-glibc_214-x86_64 mysql
[root@cs1 local]# ls -lrt
总用量 4
drwxr-xr-x.  2 root root    6 5月   8 2014 src
drwxr-xr-x.  2 root root    6 5月   8 2014 sbin
drwxr-xr-x.  2 root root    6 5月   8 2014 libexec
drwxr-xr-x.  2 root root    6 5月   8 2014 lib64
drwxr-xr-x.  2 root root    6 5月   8 2014 lib
drwxr-xr-x.  2 root root    6 5月   8 2014 include
drwxr-xr-x.  2 root root    6 5月   8 2014 games
drwxr-xr-x.  2 root root    6 5月   8 2014 etc
drwxr-xr-x.  5 root root   46 10月 12 2017 share
drwxr-xr-x.  2 root root   46 3月   9 2018 bin
drwxrwxr-x  13 1021 1004 4096 1月  31 02:40 mariadb-10.0.38-linux-glibc_214-x86_64
lrwxrwxrwx   1 root root   38 6月   4 14:43 mysql -> mariadb-10.0.38-linux-glibc_214-x86_64

5.确保目录mysql能够被用户mysql访问

[root@cs1 local]# cd mysql
[root@cs1 mysql]# chown -R mysql .
[root@cs1 mysql]# chgrp -R mysql .

6.在安装Mariadb之前,必须创建Mariadb存放数据的目录并初始化grant表,执行mysql_install_db命令来安装Mariadb,如果使用root用户来执行,必须包含–user选项来指定用户,如果是mysql用户来执行可以忽略–user选项。使用 –basedir=path 选项指定Mariadb安装目录的路径,–datadir=path选项指定Mariadb数据目录的路径。如果没有指定–basedir与–datadir选项它们在/usr/local/mysql目录下创建一个data目录。

[root@cs1 mysql]# scripts/mysql_install_db --user=mysql
Installing MariaDB/MySQL system tables in './data' ...
190604 14:44:44 [Note] ./bin/mysqld (mysqld 10.0.38-MariaDB) starting as process 19627 ...
190604 14:44:45 [Note] InnoDB: innodb_empty_free_list_algorithm has been changed to legacy because of small buffer pool size. In order to use backoff, increase buffer pool at least up to 20MB.

190604 14:44:45 [Note] InnoDB: Using mutexes to ref count buffer pool pages
190604 14:44:45 [Note] InnoDB: The InnoDB memory heap is disabled
190604 14:44:45 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
190604 14:44:45 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
190604 14:44:45 [Note] InnoDB: Compressed tables use zlib 1.2.11
190604 14:44:45 [Note] InnoDB: Using Linux native AIO
190604 14:44:45 [Note] InnoDB: Using CPU crc32 instructions
190604 14:44:45 [Note] InnoDB: Initializing buffer pool, size = 128.0M
190604 14:44:45 [Note] InnoDB: Completed initialization of buffer pool
190604 14:44:45 [Note] InnoDB: The first specified data file ./ibdata1 did not exist: a new database to be created!
190604 14:44:45 [Note] InnoDB: Setting file ./ibdata1 size to 12 MB
190604 14:44:45 [Note] InnoDB: Database physically writes the file full: wait...
190604 14:44:45 [Note] InnoDB: Setting log file ./ib_logfile101 size to 48 MB
190604 14:44:45 [Note] InnoDB: Setting log file ./ib_logfile1 size to 48 MB
190604 14:44:46 [Note] InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0
190604 14:44:46 [Warning] InnoDB: New log files created, LSN=45781
190604 14:44:46 [Note] InnoDB: Doublewrite buffer not found: creating new
190604 14:44:46 [Note] InnoDB: Doublewrite buffer created
190604 14:44:46 [Note] InnoDB: 128 rollback segment(s) are active.
190604 14:44:46 [Warning] InnoDB: Creating foreign key constraint system tables.
190604 14:44:46 [Note] InnoDB: Foreign key constraint system tables created
190604 14:44:46 [Note] InnoDB: Creating tablespace and datafile system tables.
190604 14:44:46 [Note] InnoDB: Tablespace and datafile system tables created.
190604 14:44:46 [Note] InnoDB: Waiting for purge to start
190604 14:44:46 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.42-84.2 started; log sequence number 0
190604 14:44:48 [Note] InnoDB: FTS optimize thread exiting.
190604 14:44:48 [Note] InnoDB: Starting shutdown...
190604 14:44:48 [Note] InnoDB: Waiting for page_cleaner to finish flushing of buffer pool
190604 14:44:50 [Note] InnoDB: Shutdown completed; log sequence number 1616697
OK
Filling help tables...
190604 14:44:50 [Note] ./bin/mysqld (mysqld 10.0.38-MariaDB) starting as process 19661 ...
190604 14:44:50 [Note] InnoDB: innodb_empty_free_list_algorithm has been changed to legacy because of small buffer pool size. In order to use backoff, increase buffer pool at least up to 20MB.

190604 14:44:50 [Note] InnoDB: Using mutexes to ref count buffer pool pages
190604 14:44:50 [Note] InnoDB: The InnoDB memory heap is disabled
190604 14:44:50 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
190604 14:44:50 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
190604 14:44:50 [Note] InnoDB: Compressed tables use zlib 1.2.11
190604 14:44:50 [Note] InnoDB: Using Linux native AIO
190604 14:44:50 [Note] InnoDB: Using CPU crc32 instructions
190604 14:44:50 [Note] InnoDB: Initializing buffer pool, size = 128.0M
190604 14:44:50 [Note] InnoDB: Completed initialization of buffer pool
190604 14:44:50 [Note] InnoDB: Highest supported file format is Barracuda.
190604 14:44:50 [Note] InnoDB: 128 rollback segment(s) are active.
190604 14:44:50 [Note] InnoDB: Waiting for purge to start
190604 14:44:50 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.42-84.2 started; log sequence number 1616697
190604 14:44:50 [Note] InnoDB: FTS optimize thread exiting.
190604 14:44:50 [Note] InnoDB: Starting shutdown...
190604 14:44:51 [Note] InnoDB: Waiting for page_cleaner to finish flushing of buffer pool
190604 14:44:53 [Note] InnoDB: Shutdown completed; log sequence number 1616707
OK

To start mysqld at boot time you have to copy
support-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 cs1.jy.net 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 is
strongly recommended for production servers.

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

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

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/jira

The latest information about MariaDB is available at http://mariadb.org/.
You can find additional information about the MySQL part at:
http://dev.mysql.com
Consider joining MariaDB's strong and vibrant community:
Get Involved

7.因为安装Mariadb的用户是root用户,而data目录必须要被mysql用户访问,因此修改data目录的用户与组权限

[root@cs1 mysql]# chown -R root .
[root@cs1 mysql]# chown -R mysql data

8.在安装完成后来测试Mariadb的启动

[root@cs1 mysql]# bin/mysqld_safe --user=mysql &
[1] 19770
[root@cs1 mysql]# 190604 14:45:25 mysqld_safe Logging to '/usr/local/mysql/data/cs1.jy.net.err'.
190604 14:45:25 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

mysqld_safe是服务端工具,用于启动mysqld,并且是mysqld的守护进程,mysqld_safe加&在后台运行$BASEDIR/bin/mysqld_safe &。因为mysqld_safe是mysqld的守护进程,所以mysqld_safe脚本会在启动MySQL服务器后继续监控其运行情况,并在其死机时重新启动它。直接使用mysqld_safe启动mysqld时,mysqld_safe可以使用参数选项见mysqld_safe –help,此时可以使用其他配置文件,相当于mysqld_safe把参数传递给mysqld。mysql.server脚本其实也是调用mysqld_safe脚本去启动MySQL服务器的,但此时mysqld_safe不能使用参数选项即不能mysqld_safe –defaults-file这样的模式。

9.将启动Mariadb的脚本配置成服务通过service name start命令来启用

[root@cs1 mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@cs1 mysql]# cat /etc/init.d/mysqld

[root@cs1 Packages]# service mysqld status
 SUCCESS! MariaDB running (19839)
[root@cs1 Packages]# service mysqld stop
Shutting down MariaDB... SUCCESS! 
[root@cs1 Packages]# service mysqld start
Starting MariaDB.190604 18:26:04 mysqld_safe Logging to '/usr/local/mysql/data/cs1.jy.net.err'.
190604 18:26:05 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
 SUCCESS! 

10.修改root用户密码

-bash-4.2$ mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 10.0.38-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)]> 
MariaDB [mysql]> set password=password("123456");
Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]> exit

-bash-4.2$ mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 6
Server version: 10.0.38-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)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.01 sec)

MariaDB [(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

11.使用mytop工具来监控Mariadb,mytop在Mariadb安装时也会自动安装,而mysql中需要单独安装

-bash-4.2$ mytop --prompt -u root -d mysql
Password: 
install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at (eval 13) line 3,  line 1.
Perhaps the DBD::mysql perl module hasn't been fully installed,
or perhaps the capitalisation of 'mysql' isn't right.
Available drivers: DBM, ExampleP, File, Gofer, Proxy, SQLite, Sponge.
 at /usr/local/mysql//bin/mytop line 253.

错误信息说明没有安装perl-DBD-MySQL工具包

12.安装perl-DBD-MySQ工具包

[root@cs1 bin]# yum install perl-DBD-MySQL
已加载插件:langpacks
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
file:///run/media/jy/OL-7.1%20Server.x86_64/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /run/media/jy/OL-7.1%20Server.x86_64/repodata/repomd.xml"
正在尝试其它镜像。
正在解决依赖关系
--> 正在检查事务
---> 软件包 perl-DBD-MySQL.x86_64.0.4.023-5.0.1.el7 将被 安装
--> 正在处理依赖关系 libmysqlclient.so.18(libmysqlclient_18)(64bit),它被软件包 perl-DBD-MySQL-4.023-5.0.1.el7.x86_64 需要
--> 正在处理依赖关系 libmysqlclient.so.18()(64bit),它被软件包 perl-DBD-MySQL-4.023-5.0.1.el7.x86_64 需要
--> 正在检查事务
---> 软件包 mysql-community-libs.x86_64.0.5.6.23-3.el7 将被 安装
--> 正在处理依赖关系 mysql-community-common(x86-64) = 5.6.23-3.el7,它被软件包 mysql-community-libs-5.6.23-3.el7.x86_64 需要
--> 正在检查事务
---> 软件包 mysql-community-common.x86_64.0.5.6.23-3.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

============================================================================================================================================================================================================================================
 Package                                                            架构                                               版本                                                         源                                                 大小
============================================================================================================================================================================================================================================
正在安装:
 perl-DBD-MySQL                                                     x86_64                                             4.023-5.0.1.el7                                              local                                             140 k
为依赖而安装:
 mysql-community-common                                             x86_64                                             5.6.23-3.el7                                                 local                                             256 k
 mysql-community-libs                                               x86_64                                             5.6.23-3.el7                                                 local                                             2.0 M

事务概要
============================================================================================================================================================================================================================================
安装  1 软件包 (+2 依赖软件包)

总下载量:2.4 M
安装大小:12 M
Is this ok [y/d/N]: y
Downloading packages:


Error downloading packages:
  mysql-community-common-5.6.23-3.el7.x86_64: [Errno 256] No more mirrors to try.
  perl-DBD-MySQL-4.023-5.0.1.el7.x86_64: [Errno 256] No more mirrors to try.
  mysql-community-libs-5.6.23-3.el7.x86_64: [Errno 256] No more mirrors to try.

出现不能下载相关工具包的错误

13.将操作系统ISO文件挂载到系统中并进入Packages目录执行rpm命令来安装

root@cs1 Packages]# ls -lrt mysql*
-rw-rw-r-- 1 root root  1313664 5月  14 2014 mysql-connector-java-5.1.25-3.el7.noarch.rpm
-rw-rw-r-- 1 root root   145144 8月   6 2014 mysql-connector-odbc-5.2.5-6.0.1.el7.x86_64.rpm
-rw-r--r-- 1 root root   420364 2月  19 2015 mysql-community-bench-5.6.23-3.el7.x86_64.rpm
-rw-r--r-- 1 root root 19378376 2月  19 2015 mysql-community-client-5.6.23-3.el7.i686.rpm
-rw-r--r-- 1 root root  3435828 2月  19 2015 mysql-community-devel-5.6.23-3.el7.i686.rpm
-rw-r--r-- 1 root root   262464 2月  19 2015 mysql-community-common-5.6.23-3.el7.x86_64.rpm
-rw-r--r-- 1 root root   262516 2月  19 2015 mysql-community-common-5.6.23-3.el7.i686.rpm
-rw-r--r-- 1 root root 19979168 2月  19 2015 mysql-community-client-5.6.23-3.el7.x86_64.rpm
-rw-r--r-- 1 root root  3543424 2月  19 2015 mysql-community-devel-5.6.23-3.el7.x86_64.rpm
-rw-r--r-- 1 root root 23060740 2月  19 2015 mysql-community-embedded-5.6.23-3.el7.i686.rpm
-rw-r--r-- 1 root root 23733580 2月  19 2015 mysql-community-embedded-5.6.23-3.el7.x86_64.rpm
-rw-r--r-- 1 root root 64644916 2月  19 2015 mysql-community-embedded-devel-5.6.23-3.el7.i686.rpm
-rw-r--r-- 1 root root  2104968 2月  19 2015 mysql-community-libs-5.6.23-3.el7.x86_64.rpm
-rw-r--r-- 1 root root  2040356 2月  19 2015 mysql-community-libs-5.6.23-3.el7.i686.rpm
-rw-r--r-- 1 root root 68058508 2月  19 2015 mysql-community-embedded-devel-5.6.23-3.el7.x86_64.rpm
-rw-r--r-- 1 root root 60224180 2月  19 2015 mysql-community-server-5.6.23-3.el7.x86_64.rpm
-rw-r--r-- 1 root root 59280136 2月  19 2015 mysql-community-test-5.6.23-3.el7.x86_64.rpm

[root@cs1 Packages]# rpm -ihv mysql-community-libs-5.6.23-3.el7.x86_64.rpm
警告:mysql-community-libs-5.6.23-3.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID ec551f03: NOKEY
错误:依赖检测失败:
        mysql-community-common(x86-64) = 5.6.23-3.el7 被 mysql-community-libs-5.6.23-3.el7.x86_64 需要
[root@cs1 Packages]# rpm -ivh mysql-community-common-5.6.23-3.el7.x86_64.rpm
警告:mysql-community-common-5.6.23-3.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID ec551f03: NOKEY
准备中...                             ################################# [100%]
正在升级/安装...
   1:mysql-community-common-5.6.23-3.e################################# [100%]
[root@cs1 Packages]# rpm -ihv mysql-community-libs-5.6.23-3.el7.x86_64.rpm
警告:mysql-community-libs-5.6.23-3.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID ec551f03: NOKEY
准备中...                             ################################# [100%]
正在升级/安装...
   1:mysql-community-libs-5.6.23-3.el7################################# [100%]

[root@cs1 Packages]# ls -lrt perl-DBD-MySQL
ls: 无法访问perl-DBD-MySQL: 没有那个文件或目录
[root@cs1 Packages]# ls -lrt perl-DBD-MySQL*
-rw-rw-r-- 1 root root 143092 8月   6 2014 perl-DBD-MySQL-4.023-5.0.1.el7.x86_64.rpm
[root@cs1 Packages]# rpm -ivh perl-DBD-MySQL-4.023-5.0.1.el7.x86_64.rpm
警告:perl-DBD-MySQL-4.023-5.0.1.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID ec551f03: NOKEY
准备中...                             ################################# [100%]
正在升级/安装...
   1:perl-DBD-MySQL-4.023-5.0.1.el7   ################################# [100%]

14.执行mytop命令来监控Mariadb

-bash-4.2$ mytop -u root -p 123456
MariaDB on localhost (10.0.38-MariaDB)                                                                                                                                                                  up 0+01:04:21 [15:49:46]
 Queries: 170.0   qps:    0 Slow:     0.0         Se/In/Up/De(%):    06/00/00/00
 Sorts:     0 qps now:    1 Slow qps: 0.0  Threads:    2 (   1/   0) 00/00/00/00
 Handler: (R/W/U/D)     0/    0/    0/    0        Tmp: R/W/U:    89/   89/    0
 ISAM Key Efficiency: 0.0%  Bps in/out:   1.4/ 66.6   Now in/out:  22.6/ 2.9k

       Id     User         Host/IP        DB   Time     %    Cmd           State Query
       --     ----         -------        --   ----     -    ---           ----- ----------
       12     root       localhost     mysql     10   0.0  Sleep                                                                                                                                                                          
       10     root       localhost      test      0   0.0  Query            init show full processlist   

到此安装也就完成了。