2018-2-27 9周5次课MariaDB、Apache安装

11.6 MariaDB安装

mariadb是mysql的一个分支


·下载MariaDB二进制安装包:

[[email protected] local]# cd src/
[[email protected] src]# wget https://downloads.mariadb.com/MariaDB/mariadb-10.2.6/bintar-linux-glibc_214-x86_64/mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz
(下载过程略)
[[email protected] src]# ll
总用量 859696
-rw-r--r--.  1 root  root          0 1月   6 22:20 ]
drwxr-xr-x. 12  1001  1001      4096 1月   6 22:39 httpd-2.2.34
-rw-r--r--.  1 root  root    7684419 7月  10 2017 httpd-2.2.34.tar.gz
-rw-r--r--.  1 root  root  541295045 5月  16 2017 mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz
-rw-r--r--.  1 root  root  316320366 3月  18 2017 mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
drwxr-xr-x. 17 mysql mysql      4096 1月   6 23:10 php-5.6.30
-rw-r--r--.  1 root  root   15011816 1月  19 2017 php-5.6.30.tar.bz2

·解压安装包:

[[email protected] src]# tar zxvf mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz
(过程省略)
[[email protected] src]# ll
总用量 859700
-rw-r--r--.  1 root  root          0 1月   6 22:20 ]
drwxr-xr-x. 12  1001  1001      4096 1月   6 22:39 httpd-2.2.34
-rw-r--r--.  1 root  root    7684419 7月  10 2017 httpd-2.2.34.tar.gz
drwxrwxr-x. 14  1021  1004      4096 5月  16 2017 mariadb-10.2.6-linux-glibc_214-x86_64
-rw-r--r--.  1 root  root  541295045 5月  16 2017 mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz
-rw-r--r--.  1 root  root  316320366 3月  18 2017 mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
drwxr-xr-x. 17 mysql mysql      4096 1月   6 23:10 php-5.6.30
-rw-r--r--.  1 root  root   15011816 1月  19 2017 php-5.6.30.tar.bz2

·将解压出的目录移动到 /usr/local/ 下并改名为mariadb

[[email protected] src]# mv mariadb-10.2.6-linux-glibc_214-x86_64 /usr/local/mariadb
[[email protected] src]# cd ..
[[email protected] local]# cd mariadb/
[[email protected] mariadb]# ll
总用量 176
drwxr-xr-x.  2 1021 1004  4096 4月  27 2017 bin
-rw-r--r--.  1 1021 1004 17987 5月  15 2017 COPYING
-rw-r--r--.  1 1021 1004 86263 5月  15 2017 COPYING.thirdparty
-rw-r--r--.  1 1021 1004  2271 5月  15 2017 CREDITS
drwxrwxr-x.  3 1021 1004    18 5月  16 2017 data
drwxrwxr-x.  2 1021 1004    31 5月  16 2017 DESTINATION
drwxrwxr-x.  2 1021 1004    81 5月  16 2017 docs
-rw-r--r--.  1 1021 1004  8245 5月  15 2017 EXCEPTIONS-CLIENT
drwxrwxr-x.  3 1021 1004    19 5月  16 2017 include
-rw-r--r--.  1 1021 1004  8694 5月  15 2017 INSTALL-BINARY
drwxr-xr-x.  4 1021 1004   216 5月   3 2017 lib
drwxrwxr-x.  4 1021 1004    30 5月  16 2017 man
drwxrwxr-x. 11 1021 1004  4096 5月  16 2017 mysql-test
-rw-r--r--.  1 1021 1004  2371 5月  15 2017 README.md
-rw-r--r--.  1 1021 1004 19510 5月  15 2017 README-wsrep
drwxrwxr-x.  2 1021 1004    30 5月  16 2017 scripts
drwxrwxr-x. 29 1021 1004  4096 5月  16 2017 share
drwxrwxr-x.  4 1021 1004  4096 5月  16 2017 sql-bench
drwxrwxr-x.  3 1021 1004   275 5月  16 2017 support-files

·初始化:

[[email protected] mariadb]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mariadb
(过程略)
[[email protected] mariadb]# echo $?
0

(如果不定义basedir可能去找mysql,那么命令为/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mariadb/ --datadir=/data/mariadb)

·support-files 中 my-small.cnf、my-large.cnf、my-medium.cnf、my-huge.cnf 区别在于参数大小不同,根据内存大小不同,指定合适的缓存,让mysql达到更高效的性能,做实验的虚拟机内存不大,因此使用 small 即可。

拷贝模板(为了和mysql区分,拷贝到其他目录):

[[email protected] mariadb]# cp support-files/my-small.cnf /usr/local/mariadb/my.cnf
[[email protected] mariadb]# cp support-files/mysql.server /etc/init.d/mariadb

my.cnf基本不用更改,直接可用

修改启动配置/etc/init.d/mariadb

(因为maria的my.cnf要和mysql的my.cnf区分开,因此单独定义一个conf,如果机器没有安装mysql,那么可以不用定义,并且可以将my.cnf放在 /etc/ 下)

找到start启动参数,增加conf

·打开服务前,确认关闭mysqld服务:

[[email protected] mariadb]# ps aux | grep mysqld
root       2120  0.0  0.0 112676   980 pts/0    R+   16:45   0:00 grep --color=auto mysqld

·启动mariadb:

[[email protected] mariadb]# /etc/init.d/mariadb start
Reloading systemd:                                         [  确定  ]
Starting mariadb (via systemctl):                          [  确定  ]
[[email protected] mariadb]# ps aux |grep mariadb##grep mysqld也可以
root       2162  0.0  0.1 115388  1732 ?        S    16:47   0:00 /bin/sh /usr/local/mariadb/bin/mysqld_safe --defaults-file=/usr/local/mariadb/my.cnf --datadir=/data/mysql --pid-file=/data/mysql/localhost.localdomain.pid
mysql      2278  8.0  4.9 1125124 49780 ?       Sl   16:47   0:01 /usr/local/mariadb/bin/mysqld --defaults-file=/usr/local/mariadb/my.cnf --basedir=/usr/local/mariad --datadir=/data/mysql --plugin-dir=/usr/local/mariadb/lib/plugin --user=mysql --log-error=/data/mysql/localhost.localdomain.err --pid-file=/data/mysql/localhost.localdomain.pid --socket=/tmp/mysql.sock --port=3306
root       2321  0.0  0.0 112676   984 pts/0    R+   16:47   0:00 grep --color=auto mariadb
[[email protected] mariadb]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      822/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      934/master
tcp6       0      0 :::22                   :::*                    LISTEN      822/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      934/master
tcp6       0      0 :::3306                 :::*                    LISTEN      2278/mysqld

maridb是mysql的分支,因此mariadb和安装mysql一样,单独定义配置文件所在路径,为的是和mysql区分开

虽然我们制定了配置文件为--defaults-file=/usr/local/mariadb/my.cnf,但是依然加载了--datadir=/data/mysql,而不是/data/mariadb。这是因为在my.cnf中并没有定义datadir这个参数,他就去找/etc/my.cnf配置文件。

可以在/usr/loal/mariadb/my.cnf中,在[mysqld]下增加datadir = /data/mariadb

[[email protected] ~]# killall mysqld
[[email protected] ~]# ps aux | grep mysqld
root       1130  0.0  0.0 112676   984 pts/0    S+   17:16   0:00 grep --color=auto mysqld
[[email protected] ~]# /etc/init.d/mariadb start
Starting mariadb (via systemctl):                          [  确定  ]
[[email protected] ~]# ps aux | grep mysqld
root       1156  0.4  0.1 115388  1728 ?        S    17:16   0:00 /bin/sh /usr/local/mariadb/bin/mysqld_safe --defaults-file=/usr/local/mariadb/my.cnf --datadir=/data/mariadb --pid-file=/data/mariadb/localhost.localdomain.pid
mysql      1275  4.6  5.8 1125024 58584 ?       Sl   17:16   0:00 /usr/local/mariadb/bin/mysqld --defaults-file=/usr/local/mariadb/my.cnf --basedir=/usr/local/mariadb --datadir=/data/mariadb --plugin-dir=/usr/local/mariadb/lib/plugin --user=mysql --log-error=/data/mariadb/localhost.localdomain.err --pid-file=/data/mariadb/localhost.localdomain.pid --socket=/tmp/mysql.sock --port=3306
root       1311  0.0  0.0 112676   984 pts/0    R+   17:16   0:00 grep --color=auto mysqld

(datadir变为/data/mariadb)

在启动脚本中定义datadir不行,必须要在my.cnf中定义




11.7/11.8/11.9 Apache安装

·Apache是一个基金会的名字,httpd才是我们要安装的软件包,早期它的名字就叫apache

·Apache官网www.apache.org

·apr和apr-util是一个通用的函数库,它让httpd可以不关心底层的操作系统平台,可以很方便地移植(从linux移植到windows)

下载安装包:

wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.29.tar.gz

wget http://mirrors.cnnic.cn/apache/apr/apr-1.6.3.tar.gz

wget http://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.bz2

·解压下载的安装包:

tar zxvf apr-1.6.3.tar.gz

tar jxvf apr-util-1.6.1.tar.bz2

tar zxvf httpd-2.4.29.tar.gz

·安装apr:

[[email protected] src]# cd apr-1.6.3/
[[email protected] apr-1.6.3]# ./configure --prefix=/usr/local/apr/
(过程省略)
[[email protected] apr-1.6.3]# echo $?
0
[[email protected] apr-1.6.3]# make && make install
(过程省略)

·安装apr-util:

[email protected] src]# cd ../apr-util-1.6.1/
[[email protected] apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
(--with-apr=用来定义依赖的apr位置)
(过程省略)
[[email protected] apr-util-1.6.1]# make && make install

·安装httpd:

[[email protected] apr-util-1.6.1]# cd ..
[[email protected] src]# cd httpd-2.4.29/
[[email protected] httpd-2.4.29]# ./configure --prefix=/usr/local/apache2.4.29 --with-apr=/usr/local/apr --with-apr-util=/usr/local/util --enable-so --enable-mods-most
(过程省略)
[[email protected] httpd-2.4.29]# make && make install
[[email protected] apache2.4]# ls
bin  build  cgi-bin  conf  error  htdocs  icons  include  logs  man  manual  modules

(安装过程中的问题见问题汇总)

·安装完成后,进入apache目录:

[[email protected] local]# cd apache2.4/
[[email protected] apache2.4]# ls
bin  build  cgi-bin  conf  error  htdocs  icons  include  logs  man  manual  modules

常用目录:

bin                 可执行文件 bin中的httpd

conf                 配置文件所在目录

htdocs             存放访问页

logs                 存放错误日志、访问日志等

man                 帮助文档

modules             模块

·查看apache加载了哪些模块:/usr/local/apache2.4/bin/httpd -M

(或者/usr/local/apache2.4/bin/apachectl -M)

[[email protected] apache2.4]# /usr/local/apache2.4/bin/httpd -M
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
Loaded Modules:
core_module (static)
so_module (static)
http_module (static)
mpm_event_module (static)
authn_file_module (shared)
authn_core_module (shared)
authz_host_module (shared)
authz_groupfile_module (shared)
authz_user_module (shared)
authz_core_module (shared)
access_compat_module (shared)
auth_basic_module (shared)
reqtimeout_module (shared)
filter_module (shared)
mime_module (shared)
log_config_module (shared)
env_module (shared)
headers_module (shared)
setenvif_module (shared)
version_module (shared)
unixd_module (shared)
status_module (shared)
autoindex_module (shared)
dir_module (shared)
alias_module (shared)

(static 静态,直接把模块编译进主二进制文件httpd;

shared 扩展模块,文件目录在/usr/local/apache2.4/modules)

·启动apache:

[[email protected] apache2.4]# /usr/local/apache2.4/bin/apachectl start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
[[email protected] apache2.4]# ps aux | grep httpd
root      56398  0.0  0.2  70896  2204 ?        Ss   23:28   0:00 /usr/local/apache2.4/bin/httpd -k start
daemon    56399  0.0  0.4 359860  4244 ?        Sl   23:28   0:00 /usr/local/apache2.4/bin/httpd -k start
daemon    56400  0.0  0.4 359860  4244 ?        Sl   23:28   0:00 /usr/local/apache2.4/bin/httpd -k start
daemon    56401  0.0  0.4 359860  4244 ?        Sl   23:28   0:00 /usr/local/apache2.4/bin/httpd -k start
root      56484  0.0  0.0 112676   984 pts/0    S+   23:28   0:00 grep --color=auto httpd
[[email protected] apache2.4]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      826/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1076/master
tcp6       0      0 :::80                   :::*                    LISTEN      56398/httpd
tcp6       0      0 :::22                   :::*                    LISTEN      826/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      1076/master


安装时遇到的报错汇总:

1,xml/apr_xml.c:35:19: 致命错误:expat.h:没有那个文件或目录  #include <expat.h>

解决:缺少expat-devel包

   yum install expat-devel

2,configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/

解决:

yum list | grep pcre查找依赖包

yum install -y pcre-devel

再编译就行了

3,make报错

collect2: error: ld returned 1 exit status

make[2]: [htpasswd] 错误 1

make[2]: 离开目录“/usr/local/src/httpd-2.4.27/support”

make[1]: [all-recursive] 错误 1

make[1]: 离开目录“/usr/local/src/httpd-2.4.27/support”

make: *** [all-recursive] 错误 1

解决:删除文件,重新解压源码包,先复制文档,再configure后加 --with-included-apr再重新编译

cd /usr/local/src/

cp -r apr-1.6.3  /usr/local/src/httpd-2.4.29/srclib/apr

cp -r apr-util-1.6.1  /usr/local/src/httpd-2.4.29/srclib/apr-util

cd /usr/local/src/httpd-2.4.29

#./configure --with-included-apr --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most

#make &&make install

原文地址:http://blog.51cto.com/11530642/2073736

时间: 2024-08-27 00:26:52

2018-2-27 9周5次课MariaDB、Apache安装的相关文章

2018.2.27 9周5次课

九周第五次课(2月27日) 11.6 MariaDB安装 11.7/11.8/11.9 Apache安装 11.6 MariaDB安装 cd /usr/local/src 下载二进制安装包:wget https://downloads.mariadb.com/MariaDB/mariadb-10.2.6/bintar-linux-glibc_214-x86_64/mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz 解压安装包:tar -zxvf mariad

2018.3.27 二周第二次课

1. 环境变量PATH 命令介绍:which 查找某个命令的绝对路径!$ 这个命令可以查看你最后一个命令的参数 (上一条命令最后一个参数)例:tree !$cp -r 如果目标目录存在的话,则会拷贝到目标目录下的目录里面,如果目标目录不在的话,则会创建目录放置那里.wc 可以查看一个文件的行数有多少, 语法:wc -l anaconda-ks.cfg.1 # -l后面跟要查看的文件相对路径或绝对路径 1.1 PATH环境变量 如何自定义环境变量 例:假设把ls命令换成ls2并且实现ls的功能,我

2018.1.9 5周2次课

五周第二次课(1月9日) 7.6 yum更换国内源 7.7 yum下载rpm包 7.8/7.9 源码包安装 7.6 yum更换国内源 1.恢复之前备份的文件 2. 进入"/etc/yum.repos.d"目录 3.删除"CentOS-Base.repo"文件 4.下载"163.repo"文件 wget http://mirrors.163.com/.help/CentOS7-Base-163.repo curl -O http://mirrors

2018.1.16 6周2次课

六周第二次课(1月16日) 9.4/9.5 sed 9.4/9.5 sed 其实grep工具的功能还不够强大,它实现的只是查找功能,而不能把查找的内容替换.以前用vim操作文档的时候,可以查找也可以替换, 但只限于在文本内部操作,而不能输出到屏幕上.sed工具以及后面要介绍的awk工具就能把替换的文本输出到屏幕上,而且还有其他更丰富的功能.sed和awk都是流式编辑器,是针对文档的行来操作的. sed  '/x/'p filename:匹配x字符 sed  -n  '/x/'p  filenam

2018.3.1 10周2次课

十周第二次课(3月1日) 11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机 11.14/11.15 Apache和PHP结合 配置httpd支持php httpd主配置文件/usr/local/apache2.4/conf/httpd.conf vim /usr/local/apache2.4/conf/httpd.conf   //修改以下4个地方 ServerName 搜索ServerName,把#ServerName www.example

2018.4.23 17周4次课

十七周4次课(4月23日) 20.20 告警系统主脚本 20.21 告警系统配置文件 20.22 告警系统监控项目 20.20 告警系统主脚本 创建告警系统的目录: [[email protected] /usr/local/sbin]# mkdir mon [[email protected] /usr/local/sbin]# ls mon  nginx_log_rotate.sh [[email protected] /usr/local/sbin]# cd mon [[email pro

2018.4.27 六周第三次课 (awk工具)

awk工具介绍 awk也是流行的编辑器,针对文档中的行来操作,一行一行的操作: awk具备sed的所有功能,而且更强大. awk截取文档中的某个段落,示例如下: -F选项的作用是指定分隔符,如果不加-F选项,以空格或者tab为分隔符. print为打印的动作,用来打印某个字段.$1为第一段,$2为第二段,$0表示整行. 示例1: [[email protected] ~]# mkdir awk #创建个awk目录[[email protected] ~]# cp /etc/passwd awk/

2018.1.29 8周1次课

八周一次课(1月29日) 10.23 linux任务计划cron 10.24 chkconfig工具 10.25 systemd管理服务 10.26 unit介绍 10.27 target介绍 10.23 linux任务计划cron 其实大部分系统管理工作都是通过定期自动执行某个脚本来完成的, 那么如何定期执行某个脚本呢? 这就要借助Linux的cron功能了 Linux任务计划功能的操作都是通过crontab命令来完成的, 其常用的选项有以下几个. -u:表示指定某个用户,不加- u选项则为当

2018.4.25 18周1次课

十八周一次课(4月25日) 20.27 分发系统介绍 20.28 expect脚本远程登录 20.29 expect脚本远程执行命令 20.30 expect脚本传递参数 20.27 分发系统介绍 expect是一种能够按照脚本内容里面设定的方式与交互式程序进行"会话"的程序.根据脚本内容,Expect可以知道程序会提示或反馈什么内容以及什么是正确的应答.它是一种可以提供"分支和嵌套结构"来引导程序流程的解释型脚本语言. 我们熟知的shell编程功能虽然很强大,但是