11.1 LAMP架构介绍
Apache(httpd):web服务软件php
Mysql:数据库,存储数据的mysql
PHP:编程语言linux
Apache不能直接和Mysql相连c++
11.2 MySQL、MariaDB介绍web
11.3/11.4/11.5 MySQL安装sql
rpm包安装有一个缺点就是不能定义你所安装的路径,它默认的就是安装在user下面。shell
二进制免编译包能够本身指定数据库
LAMP 是 Linux Apach MySQL PHP 的缩写,其实就是把 apach,MySQL以及PHP安装在LINUX系统上,组成一个环境来运行PHP的脚本语言。编程
Apache是最经常使用的WEB服务软件,而MySQL 是比较小型的数据库软件,这两个软件以及PHP均可以安装到Windows机器上。vim
平时安装的MySQL 都是源码包安装的,可是编译时间须要很长时间,建议安装二进制免编译包。建议下载一个5.6版本。mirrors.souhu.com
初始化mysql
#uname -i 【查看CentOS的位数,选择相应的MySQL进行下载。uname -a 也能够】
#cd /usr/local/src 【建议的默认源码包下载路径】
#wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-i686-glibc2.5-x86_64tar.gz
#tar
#useradd mysql 【增长一个用户的,不建立家目录,自定义shell,/sbin/nologin】
#mv mysql-5.1.72-linux-i686-glibc23 /usr/local/mysql 【移动而且重命名,无需编译】
#cd /usr/local/mysql
#vim INSTALL-BINARY 【查看readme 或者 install等帮助文档】
#mkdir -p /data/mysql 【增长数据库安装目录】
#chown -R mysql /data/mysql 【更改权限】
# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql 【执行初始化,指定数据库所属主,定以数据库安装目录,建议放置到大的分区上。】
配置 mysql
# cp support-files/my-large.cnf /etc/my.cnf 【拷贝配置文件,可能会提示覆盖,覆盖便可】
#cat /etc/my.cnf
# The MySQL server
[mysqld]
port = 3306 【监听端口,用来 通信】
socket = /tmp/mysql.sock 【socket,linux独有的通信功能】
skip-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 16M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8
# Replication Master Server (default) # binary logging is required for replication
log-bin=mysql-bin 【mysql在查询插入删除更新数据的时候,会记录日志】
# cp support-files/mysql.server /etc/init.d/mysqld 【拷贝启动脚本并修改属性】 # chmod 755 /etc/init.d/mysqld # vim !$
basedir=/usr/local/mysql
datadir=/data/mysql #错误日志所在
# chkconfig --add mysqld 【增长mysqld服务】 # chkconfig mysqld on 【启动mysqld】 # service mysqld start # /etc/init.d/mysqld status 【查看mysqld的启动状况,也能够用ps aux 查看,也能够用 netstat -lnp 查看port】
常见错误以及疑问:
一、初始化数据库的时候报错 error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory
是由于libstdc++.so.5没有装
yum install -y compat-libstdc++-33.x86_64
二、创建mysql用户的目的是,在以后启动服务,初始化数据的时候,都要用到这个用户
三、若是启动不了,请到 /data/mysql/ 下查看错误日志,这个日志一般是主机名.err. 检查mysql是否启动的命令为:
[root@localhost mysql]# ps aux |grep mysqld
四、怎么去看这个安装包是否是免编译的?
到目前为止,也只有mysql会有这种包,会以这样的方式安装。 看它是否是二进制,看它的名字是否是带 glibc 和 i586 x86_64 这些字眼,源码包是不会带这些的。二进制的包不须要configure make。
关于安装包,咱们要遵循一个规则,就是要到官网去下载包,下载以前你先看看它是针对平台的包仍是源码包,都是有标记和说明的。 固然,下载下来的包,解压后都会有一个安装说明文件,一般叫作readme或者INSTALL,看看安装过程,有make的 确定是源码包了。 再一个就是经过名称来看,规范的包,都会在名字上去标记它是什么包,源码包名字不会加任何修饰,好比mysql的源码包,就是mysql-版本号.tar.gz 而免编译的包,都会标记有i686或者x86_64字眼。mysql-5.1.53.tar.gz 这样的就是源码包。
五、初始化的时候....
[root@centos mysql]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data/mysql/
Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
linux是最小化安装的,这里报错缺乏共享库文件,不要紧,咱们安装一下就能够了。
[root@centos mysql]# yum install -y libaio
六、铭哥,若是我想卸载mysql,是否是直接删除用户,删除init.d下的启动服务,用chkconfig删除服务再删除目录,就能够卸载mysql了?还有须要注意的吗?还有没有更好的方法呢? 若是是卸载我们的方法安装的mysql,具体作法是:
-
停掉服务
-
删除/usr/local/mysql
-
删除/data/mysql
-
删除/etc/my.cnf
-
删除启动脚本
-
删除mysql用户
七、这个用包安装,和用命令yum install mysql; yum -y install mysql-server ;yum install mysql-devel。这两个有什么区别?
区别在于mysql mysql-server mysql-devel 包的区别。
mysql包就是客户端程序,咱们平时用命令mysql -u -h 链接server 的时候,就用这个包
mysql-server 是服务端程序,跑服务的话要安装这个包
mysql-devel 这个是开发库相关的包,安装php的时候,要依赖mysql,就得有这个开发库支持
八、my-large.cnf my-huge.cnf my-medium.cnf my-small.cnf 这几个文件有什么区别?为何选择my-large.cnf
文件区别在于,缓存相关的一些参数不一样,好比large里面缓存配置参数就比较大。
九、我以前有lamp服务,此次练习安装把以前的卸载了 运行 cp my-large.cnf /etc/my.cnf cp mysql.server /etc/init.d/mysqld这俩命令的时候, 报错:cp: not writing through dangling symlink `/etc/init.d/mysqld' 这是什么缘由?
先删除/etc/init.d/mysqld 再拷贝
这章须要好好弄明白,周日在复习