第一部分:MariaDB基础总结
1、基础
A:MariaDB为C/S架构:同一主机基于Unix Sock,不同主机基于TCP/IP,监听3306端口
B:配置文件: /etc/my.cnf --> /etc/mysql/my.cnf --> ~/.my.cnf 后面配置的优先级最高
C:mysql客户端登陆
-u USERNAME: 连接Server使用的账号;管理员为root;(非OS)
-h HOSTNAME or IP:连入的Server
-p PASSWORD:前面使用-u选项指定的用户的密码;
D:安装方式
源代码
通用二进制:解压后直接运行
包管理器
2、表管理
包括DDL与DML二种,其中DDL包括创建、修改、删除数据库,DML包括增、删、查、改相应表
A:创建表:
通过help create table查看帮助文件
CREATE TABLE [IF NOT EXISTS] tbl_name (col1 type1 dec1, col2 type2 dec2, ...)
示例:create table test.techers(tid int unsigned not null auto_increment primary key,
name varchar(50) not null,age tinyint unsigned,gender enum(‘f‘,‘m‘) default ‘m‘,
echeng varchar(100),unique key(name,kecheng));
B:删除表:Drop table删除表
C:查询
SELECT
[DISTINCT] #去重
[SQL_CACHE | SQL_NO_CACHE]
col_name AS Alias, col_name AS Alias, ...
[FROM table_references
[WHERE where_condition]
[ORDER BY {col_name | expr | position}
[ASC | DESC], ...]
限制条件:
WHERE后的条件表达式:
>, <, >=, <=, ==, !=
BETWEEN ... AND ...
LIKE ‘pattern‘
_
%
RLIKE ‘pattern‘
示例:select * from test.techers where name rlike ‘^[a-m].*i.*$‘
利用正则表达式,查询以子母a到z开头的名称
D:插入:
INSERT [INTO] tbl_name [(col_name,...)]{VALUES | VALUE} ({expr | DEFAULT},...),(...),...
要求前后字段数量相同
示例:
insert into test.techers (name,age,classid,gender,kecheng) values (‘emily‘,18,119,‘f‘,‘tulongdao‘);
E:修改:alter table
change修改表字段,名称等
modify只能修字段定义,不能修改名称
示例:alter table test.techers add classID smallint UNSIGNED not null after name;
F:修改数据update
UPDATE:
UPDATE table_reference
SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]
示例:update test.techers set age=20 where tid =1; #修改tid为1的年龄
3、索引管理
A:创建索引
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name ON tbl_name (index_col_name,...)
B:删除索引
DROP INDEX index_name ON tbl_name
4、用户权限管理
A:授权:如果用户事先不存在,则创建此账号并授权
GRANT priv1,... ON db_name.tbl_name TO ‘username‘@‘host‘ [IDENTIFIED BY [PASSWORD] ‘password‘];
示例:grant all on test.* to ‘wpuser‘@‘%‘; #表示text库中所有表
可利用show grants [for user]查看已获得权限
示例:show grants for ‘wpuser‘@‘%‘;
B:回收权限
REVOKE priv1,... ON db_name.tbl_name FROM ‘username‘@‘host‘;
示例:
#revoke insert,update on test.* from ‘wpuser‘@‘%‘;
收回wpuser在test库中所有表的插入、update权限
第二部分:编译安装LAMP,其中分别实现
(1)把php编译成为httpd的模块
第一步:编译安装httpd24
1、暂时原httpd服务,分别利用yum和ftp安装
yum安装pcre-devel zlib-devel
yum groupinstall "Development Tools" "Server Platform Development" –y
apr-1.5.0.tar.bz2 apr-util-1.5.3.tar.bz2 httpd-2.4.9.tar.bz2
2、按照顺序进行安装
先安装apr-1.5.0.tar.bz2
然后apr-util-1.5.3.tar.bz2
最后是httpd-2.4.9.tar.bz2
A:解压安装APR
./configure --prefix=/usr/local/apr目录 #该目录为新指定目录防止与原安装冲突
配置后运行make && make install
B:安装apr-util-1.5.3.tar.bz2
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr #利用with-apr指定新apr路径
安装完成运行make && make install
C:安装httpd
运行以下脚本
./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so -- enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/ local/apr --with-apr-util=/usr/local/apr-util/ --enable-moudles=most --enable-mpms-shared=all --with-mpm=prefork
同时运行make && make install进行安装
D:配置及验证
1、apachectl路径
2、运行apachectl start启动服务
3、后续配置/etc/httpd24/httpd.conf主配置文件
第二步:安装mariadb
1、停止原mysql服务
2、创建新文件系统,mydata目录
3、下mariadb-5.5.40-linux-x86_64解压/usr/local目录
创建软连接ln –sv mariadb-5.5.40-linux-x86_64 mysql
4、卸载原mysql
yum remove mysql-server mysql
5、修改权限mysql 用户和mysql用户组
6、根据环境复制配置文件,复制前将/etc/mysql目录创建
7、编译mysql库
scripts/mysql_install_db --user=mysql --datadir=/data/mydata/
8、 /etc/mysql/my.cnf中datadir=/data/mydata
9、修改环境变量/etc/rc.d/init.d/mysqld,启动mysql
第三步:安装编译php
1、通过yum install额外安装:libxml2-devel, libmcrypt-devel, bzip2-devel
2、php-5.4.42.tar.bz2进行编译安装
3、make && make install
4、复制配置目录下的php.ini.production至/etc/php目录
将修改时区
5、编辑/etc/httpd24/httpd.conf文件,加载相应模块
6、编辑/etc/httpd24/httpd.conf文件
添加以下
同时在index部分添加
DirectoryIndex index.php index.html
7、重新载入测试页
8、配置php与mysql通信
编辑/usr/local/apache/htdocs/目录下index.php文件
测试
9、后续可利用ab工具进行相应的测试
可分为动态与静态二种方式
(2)php以fpm工作为独立守护进程
php为独立守护进程的区别是以单独进行的形式存在,这里区别在于编译时参数调整。之前
内容相同。这里不说明,后续从编译开始说明(区别是—enable-fpm)
1、删除原php5.4.42解压目录,重新解压,运行脚本重新
./configure --prefix=/usr/local/php5 --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=
/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png
-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --enable-fpm --with-mcrypt --
with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2
2、编译完成make && make install
3、修改配置文件
# cp php.ini-production /etc/php.ini
配置php-fpm
为php-fpm提供SysV init脚本,并将其添加至服务列表:
# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
# chmod +x /etc/rc.d/init.d/php-fpm
# chkconfig --add php-fpm
# chkconfig php-fpm on
4、编辑php-fpm.conf
主要修改pid = /usr/local/php5/var/run/php-fpm.pid
5、启动验证
利用 service php-fpm start 启动
ps aux | grep php-fpm
同时利用netstat –tnlp|grep php-fpm,监控在9000端口
6、配置fastcgi
修改/etc/httpd24/httpd24.conf
启用以下二个模块
LoadModule proxy_modulemodules/mod_proxy.so
LoadModule proxy_fcgi_modulemodules/mod_proxy_fcgi.so
配置代理
7、启动验证,利用AB工具进行相应的
第三部分: