11.1LAMP架构介绍python
11.211.2 MySQL、MariaDB介绍mysql
11.1LAMP架构介绍git
Apache和PHP是一个总体,由于PHP是以一个模块的形式和Apache结合在一块儿,可是Apache不能直接和MySQL去链接,只能经过PHP这个模块去MySQL中提取数据,拿到数据后,PHP把这个结果交给Apache,Apache再交给用户。web
PHP和MySQL交互数据的操做、行为,称为动态请求。sql
11.211.2 MySQL、MariaDB介绍shell
rpm包——>直接yum安装便可vim
源码包——>centos
二进制免编译包——>这种包至关因而在发布以前,先在一台linux服务器上作了编译,编译完以后,把编译完成的文件从新安排放到一个目录下去,而后再打包压缩,最后再发布。
[root@localhost ~]# cd /usr/local/src
[root@localhost src]# ls
httpd-2.2.34 httpd-2.2.34.tar.gz
[root@localhost src]#
2.查询平台是多少位的
[root@localhost src]# uname -a //查看平台,是多少位的
Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost src]#
3.并去下载MySQL包,地址连接,直接wget下载MySQL 5.6版本便可
[root@localhost src]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
4.下载完MySQL安装包后,首先须要解压
[root@localhost src]# ls
httpd-2.2.34 httpd-2.2.34.tar.gz mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
[root@tianqi-01 src]# tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
[root@tianqi-01 src]# ls
httpd-2.2.34 httpd-2.2.34.tar.gz mysql-5.6.35-linux-glibc2.5-x86_64 mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
[root@tianqi-01 src]#
5.移动目录,并修更名字
[root@localhost src]# mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql
6.进入到 /usr/local/mysql 目录下
[root@localhost src]# cd !$
cd /usr/local/mysql
[root@localhost mysql]#
7.进入到 /usr/local/mysql 目录下,首先 ls命令去查看下目录中是否存在
[root@localhost mysql]# ls
bin COPYING data docs include lib man mysql-test README scripts share sql-bench support-files
[root@localhost mysql]#
8.建立MySQL的用户,useradd mysql
[root@localhost mysql]# useradd mysql
[root@localhost mysql]#
9.建立 /data/ 目录,若已存在,则可省略
[root@localhost mysql]# mkdir /data/
[root@localhost mysql]#
10.使用./scripts/mysql_install_db --user=mysql --datadir=/data/mysql 初始化
[root@localhost 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
缘由:缺乏libaio库文件
解决方法:yum install -y libaio*
[root@tianqi-01 mysql]# yum install -y libaio*
11.这时候会看到出现一个提示,缺乏Dumper模块
12.解决思路
[root@localhost mysql]# yum list |grep perl |grep -i dumper
perl-Data-Dumper.x86_64 2.145-3.el7 base
perl-XML-Dumper.noarch 0.81-17.el7 base
[root@localhost mysql]#
13.会看到列出的一些包,只需安装perl-Data-Dumper包便可——>如果不知道装哪些包,能够全部的包都安装上
[root@localhost mysql]# yum install -y perl-Data-Dumper
14.而后再次初始化
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
Installing MySQL system tables...2018-02-07 05:41:11 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
15.在初始化完成后,如何去判断初始化成功!两种方法:
[root@localhost mysql]# echo $?
0
[root@localhost mysql]#
16.初始化完成,下面就是拷贝配置文件和启动脚本
[root@localhost mysql]# ls support-files/my-default.cnf
support-files/my-default.cnf //mysql的模板配置文件
[root@localhost mysql]# ls /etc/my.cnf
/etc/my.cnf //mysql的配置文件就叫作my.cnf,并且固定放在 /etc下
[root@localhost mysql]#
17.这里会看到centos7系统中,默认安装了mariadb-libs包,或者是以前安装包连带着安装的mariadb-libs包,因此在这里会生成/etc/my.cnf
[root@localhost mysql]# rpm -qf /etc/my.cnf
mariadb-libs-5.5.56-2.el7.x86_64
[root@localhost mysql]#
18.如果直接使用自带的 /etc/my.cnf 文件,但须要修改其中的配置文件
[root@localhost mysql]# vim !$
vim /etc/my.cnf
[mysqld]
[mysqld]
datadir=/data/mysql
socket=/tmp/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
#log-error=/var/log/mariadb/mariadb.log
#pid-file=/var/run/mariadb/mariadb.pid
#
# include all files from the config directory
#
#!includedir /etc/my.cnf.d
[root@localhost mysql]# ls
bin COPYING data docs include lib man my.cnf mysql-test README scripts share sql-bench support-files
[root@localhost mysql]#
19.拷贝文件到 /etc/init.d/mysqld 中
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql]#
20.自定义启动脚本
[root@localhost mysql]# vim /etc/init.d/mysqld
把 basedir=/usr/local/mysql //指定你的程序目录,放到/usr/local/mysql 下
把 datadir=/data/mysql //定义到/data/mysql 而后保存退出
21.修改权限,755权限——>默认是755权限,修改权限命令 chmod
[root@localhost mysql]# ll !$
ll /etc/init.d/mysqld
-rwxr-xr-x. 1 root root 10902 Feb 7 06:19 /etc/init.d/mysqld
[root@localhost mysql]#
22.若想开机启动,须要将它加入到系统服务列表中去
[root@localhost mysql]# chkconfig --add mysqld
[root@localhost mysql]# chkconfig --list
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@localhost mysql]#
[root@localhost mysql]# service mysqld start
Starting MySQL.Logging to '/data/mysql/localhost.localdomain.err'.
..... SUCCESS!
[root@localhost mysql]# ps aux | grep mysql //查看进程
root 1192 0.0 0.1 11768 1572 pts/0 S 06:25 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysq/localhost.localdomain.pid
mysql 1327 9.0 45.1 973060 451004 pts/0 Sl 06:25 0:05 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/localhost.localdomain.err --pid-file=/data/mysql/localhost.localdomain.pid --socket=/tmp/mysql.sock
root 1361 0.0 0.0 112660 968 pts/0 S+ 06:26 0:00 grep --color=auto mysql
[root@localhost mysql]# netstat -lntp //查看监听的端口,3306端口
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 895/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1001/master
tcp6 0 0 :::22 :::* LISTEN 895/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1001/master
tcp6 0 0 :::3306 :::* LISTEN 1327/mysqld
[root@localhost mysql]#
23.假若有一天,没有把启动的脚本放到/etc/init.d 下,或者根本没有这样的启动脚本去拷贝,可使用如下方法去启动
[root@localhost mysql]# service mysqld stop //首先先停掉mysqld服务
Shutting down MySQL.. SUCCESS!
[root@localhost mysql]# !ps //查看mysqld进程是否还在
ps aux | grep mysql
root 1390 0.0 0.0 112660 968 pts/0 R+ 06:29 0:00 grep --color=auto mysql
[root@localhost mysql]# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql & //命令行的方式启动,先指定配置文件所在路径,而后指定user用户,指定datadir(这个datadir也能够在my.cnf 文件中去定义的),再加一个& 符号,丢到后台去
[1] 1391
[root@localhost mysql]# 180207 06:31:45 mysqld_safe Logging to '/data/mysql/localhost.localdomain.err'.
180207 06:31:45 mysqld_safe Starting mysqld daemon with databases from /data/mysql
[root@localhost mysql]# !ps //查看进程是否启动成功
ps aux | grep mysql
root 1391 0.0 0.1 113260 1580 pts/0 S 06:31 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql
mysql 1514 0.3 44.9 973060 449752 pts/0 Sl 06:31 0:00 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/localhost.localdomain.err --pid-file=/data/mysql/localhost.localdomain.pid --socket=/tmp/mysql.sock
root 1537 0.0 0.0 112660 968 pts/0 R+ 06:33 0:00 grep --color=auto mysql
[root@localhost mysql]# !net
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 895/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1001/master
tcp6 0 0 :::22 :::* LISTEN 895/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1001/master
tcp6 0 0 :::3306 :::* LISTEN 1514/mysqld
[root@localhost mysql]#
24.关闭mysqld服务
[root@localhost mysql]# killall mysqld
[root@localhost mysql]# 180207 06:38:35 mysqld_safe mysqld from pid file /data/mysql/localhost.localdomain.pid ended
[1]+ Done /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql
[root@localhost mysql]# !ps
ps aux | grep mysql
root 1554 0.0 0.0 112660 972 pts/0 R+ 06:39 0:00 grep --color=auto mysql
[root@localhost mysql]#
友情连接:阿铭Linux