一、Lamp架构介绍

1、是一个简写,它包含了四个东西: Linux 操作系统; Apache(httpd) 是一个web服务软件; MySQL 数据存储软件; PHP 脚本语言,和shell类似,比shell复杂,通常用来做网站;

2、httpd 、PHP、MySQL三者是如何工作的, Apache跟php是一个整体,php是以一个模块的形式跟apache结合在一起的,Apache不能直接跟mysql直接打交道,只能php这个模块拿数据;

二、MySQL/Mariadb介绍

MySQL是一个关系型数据库,由mysql ab公司开发,2008年被sun公司以10亿美元收购,2009年,sun公司被oracle公司以74亿美元收购, MySQL官网https://www.mysql.com 从5.6开始变化比较大,5.7性能上有很大提升; (银行用的系统是unix,收费的) Mariadb为MySQL的一个分支,官网:https://mariadb.com 最新版10.2 Mariadb主要由SkySQL公司维护,SkySQL 公司由MySQL原作者带领大部分原班人马创立, Mariadb5.5 版本对应MySQL5.5,10.0对应MySQL5.6 Community社区版本,Enterprise企业版,GA(Generally Available)通用版,在生产环境中用的;DMR(Development Milestone Release) 开发里程碑发布版,RC(release candidate) 发行候选版本,beta 开放测试版,Alpha内部测试版;

三、MySQL的安装

1、MySQL常用的安装包:rpm 二进制免编译,源码 2、uname -a 查看本机系统的版本号, 3、下载5.6_64位二进制包到/usr/local/src 4、解压包 mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
tar -zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz 5、移动解压包到/usr/local/mysql目录并更名:mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql 6、创建mysql用户: useradd mysql 7、创建data目录 8、 ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql 在这个过程中会出现很多错误:要确认创建mysql用户,及目录:/data/ /data/mysql 出现在下面的错误: (1)root@riven/usr/local/mysql# ./bin/mysqld -- defaults-file=/etc/my.cnf --initialize --user=mysql ./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory 解决方法:[root@riven data]# yum install -y libaio //安装后在初始化就OK了 ( 2) 解决方法:yum install -y perl-Module-Install

运行安装mysql 报错

[root@riven]# ./scripts/mysql_install_db --defaults-file=conf/3306my.cnf

FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db: Data::Dumper

解决方法 :安装autoconf库,命令:yum-y install autoconf

9、用echo $? 检查上一步是否出错, 10、初始化完成,要拷贝配制文件和启动脚本:配制文件在:support-files下面,拷贝到/etc/并更名为my.cnf :cp support-files/my-default.cnf /etc/my.cnf // /etc/my.cnf 里面有个默认的my.cnf
可以直接在里面改。 basedir = /usr/local/mysql datadir= /data/mysql prot = 3306 server_id = 1 socket = /tmp/mysql.sock

11、拷贝 启动脚本: cp support-files/mysql.server /etc/init.d/mysqld 并修改: basedir=/usr/local/mysql 指定目录 datadir=/data/mysql 修改后把/etc/init.d/mysqld改成755权限,

12、想要它开机启动,要把它放到系统服务列表里面去 chkconfig --add mysqld 然后查看查看服务列表: chkconfig --list 我们可以看到mysqld服务在里面了,表示下次开机会自动启动,也可以直接用命令让它启动起来: 1、/etc/init.d/mysqld start 也可以用service mysqld start 也可以用命令行去启动:/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql & 说明: --defaults-file=/etc/my.cnf 指定配制文件路径 --user=mysql 指定启动用户 --datadir=/data/mysql/ 指定 datadir路径

(修改了配制文件/etc/my.cnf ,一定要重新初始化。 ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql 初始化mysql_install_db 后再启动 mysqld成功) 启动服务出错: service mysqld start 错误信息: Starting MySQL.170623 10:57:50 mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'. ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid). 解决: 是不是安装的用户没有权限 你可以手动的建这一个文件

mkdir -p /var/log/mariadb/ cd /var/log/mariadb/ touch mariadb.log chmod -R 775 mariadb.log chown -R mysql:mysql mariadb.log

13、看进程:ps aux |grep mysqld ,看它监听的端口:netstat -lntp 14、如何关闭mysqld :killall mysqld (相对安全),不可以直接kill pid 不可以直接用kill -9强制杀死进程,这样很容易丢数据,损坏你的表。你运行完killall mysqld然后慢慢等就可以了 15、mysqld常用的引擎:innodb 及myisam