在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
到此安装也就完成了。