[toc]php
Appache是最经常使用的web服务软件,而MYSQL是比较小型的数据库软件,这两个软件及PHP均可以安装到windows机器上 html
扩展:mysql
什么是脚本语言?,为何php语言是脚本语言 问:一、脚本语言和编程语言和html是否是计算机语言的主要的分类?区别在什么地方?关键是php是脚本语言这个怎么理解?——由于我才刚开始学php语言,因此请大侠们说得尽可能通俗易懂些。linux
二、我要作功能比较全的网站,用的是自主建站系统,可是是否是最好也学点php语言?c++
答1:编程语言通常用来编写应用程序,像C,C++,VB,DEPHI,JAVA等,功能强大,学习难度也较大。 脚本语言通常用来编写一些简单的应用,像JS,VBS,JSP,ASP,PHP等,宏程序也能够算是脚本语言。脚本语言比起编程语言来讲最大的缺点是执行效率低,但编写要容易点。程序员
HTML不算是语言,虽然它叫超文本标记语言,其实只能算是一些控制标记,写出来的也不称为程序。 静态网页中也能够有VBS或JS脚本,它们只是前台的。web
ASP中既能够用VBS也能够JS,只不过一般大部分人用VBS罢了,它们是后台的。 PHP与C语法几乎相同,其实与JS也几乎相同,都很接近面试
你要作网站要学习ASP(有点落后了,不过入门较容易)或PHP或JSP或ASP.net(能够学VB.net也能够学C#.net)中的至少同样。 免费的整站系统能够无偿使用修改,但大多不容许商业使用,你能够去相应的官方网站查看受权文件。sql
答二:c;c++;perl;vb;汇编等等这些属于编程语言 脚本语言主要是咱们常见的asp;php等 asp从属于vb,是vb的一个子集 php是使用c开发的 不论是asp仍是php都是须要服务器解析执行,可是html和他们是不一样的,html不须要服务器解析执行,他只须要直接输出就好了,因此咱们叫html是超文本.数据库
若是你使用的自助建站系统是php开发的,那么假若你想开发复杂的网站你最好学一下PHP,这样你就能够改写建站系统的核心,可是若是你只用它来作普通的企业站,php你学不学都不要紧.
MySQL存储用户名;密码和数据、图片之类的放在静态文件里
MySQL是一个关系型数据库,由mysql ab公司开发,mysql在2008年被sun公司收购(10亿刀),2009年sun公司被oracle公司收购(74亿刀)
MySQL5.6变化比较大,5.7性能上有很大提高
MariaDB主要由SkySQL公司(现改名为MariaDB公司)维护,SkySQL公司由MySQL原做者带领大部分原班人马创立.
Community 社区版本,Enterprise 企业版,GA(Generally Available)指通用版本,在生产环境中用的,DMR(Development Milestone Release)开发里程碑发布版,RC(Release Candidate)发行候选版本,Beta开放测试版本,Alpha内部测试版本
cd /usr/local/src wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql cd /usr/local/mysql useradd mysql mkdir /data/ ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql cp support-files/my-default.cnf /etc/my.cnf cp support-files/mysql.server /etc/init.d/mysqld vi /etc/init.d/mysqld 定义basedir和datadir /etc/init.d/mysqld start
[ ] rpm格式: xxxx-devel-6b-33.x86_64.rpm #rpm格式很好区分,
[ ] 二进制包: xxxxx-3.23.58-pc-linux-i686.tar.gz #二进制格式的包名字很长,有版本号、适应平台、适应的硬件类型等,格式:mysql-<版本>-<OS>-tar.gz
[ ] 源码包: php-5.2.14.tar.gz #而源码格式仅仅就是一个版本号的tar包。#cj 安装区别:解压、./config、make、make install
[root@localhost src]# uname -i x86_64
什么是源码包:源码包都是能够更改的C或者C++语言编写的源码文件,而免编译的二进制包就是已经编译过的文件再打包后提供给咱们.好比windows上安装的QQ,360都是这种安装包.
[root@localhost ~]# cd /usr/local/src [root@localhost src]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
[root@localhost src]#tar zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
[root@localhost src]# mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql
# [ -d /usr/local/mysql ] && mv /usr/local/mysql /usr/local/mysql_old
相似一条if判断,意思是若是/usr/local/mysql目录存在,就改一下名字,以避免影响后面的操做,若是不更改原有的路径名称,新安装的mysql步骤会失败
[root@localhost src]# cd /usr/local/mysql/ [root@localhost mysql]# ls bin COPYING data docs include lib man mysql-test README scripts share sql-bench support-files
[root@localhost mysql]# useradd mysql
在书中的建立方式为:# useradd -s /sbin/nologin mysql
[root@localhost mysql]# mkdir /data/ 若data已经存在,无需再新建 # chown -R mysql:mysql /data/mysql //给/data/mysql这个文件夹服务mysql用户的执行权限
初始化的时候,可能回出现以下问题:
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db: Data::Dumper
那么怎么解决呢? 使用模糊搜索,过滤关键来尝试解决:
[root@localhost mysql]# yum list | grep perl | grep -i dumper perl-Data-Dumper.x86_64 2.145-3.el7 base perl-Data-Dumper-Concise.noarch 2.020-6.el7 epel perl-Data-Dumper-Names.noarch 0.03-17.el7 epel perl-XML-Dumper.noarch 0.81-17.el7 base
搜索完成后出现以上四个安装包,没法肯定须要哪一个安装包的时候,能够尝试每一个安装包都试下。
[root@localhost mysql]# yum install -y perl-Data-Dumper.x86_64
执行:
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
[root@localhost mysql]# echo $? 0
[root@xavi mysql]# ls support-files/my-default.cnf support-files/my-default.cnf [root@xavi mysql]# cp support-files/my-default.cnf /etc/my.cnf
络上的两个程序经过一个双向的通讯链接实现数据的交换,这个链接的一端称为一个socket。 创建网络通讯链接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员作网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通讯的能力。 Socket的英文原义是“孔”或“插座”。做为BSD UNIX的进程通讯机制,取后一种意思。一般也称做"套接字",用于描述IP地址和端口,是一个通讯链的句柄,能够用来实现不一样虚拟机或不一样计算机之间的通讯。在Internet上的主机通常运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不一样的端口对应于不一样的服务。Socket正如其英文原义那样,像一个多孔插座。一台主机犹如布满各类插座的房间,每一个插座有一个编号,有的插座提供220伏交流电, 有的提供110伏交流电,有的则提供有线电视节目。 客户软件将插头插到不一样编号的插座,就能够获得不一样的服务。
# *** upgrade to a newer version of MySQL. [mysqld] datadir=/data/mysql socket=/tmp/mysql.sock symbolic-links=0 # Remove leading # and set to the amount of RAM for the most important data
[root@xavi mysql]# ls /etc/my.cnf /etc/my.cnf [root@xavi mysql]# rpm -qf /etc/my.cnf mariadb-libs-5.5.52-1.el7.x86_64
[root@localhost mysql]# ls support-files/ binary-configure magic my-default.cnf mysqld_multi.server mysql-log-rotate mysql.server [root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql]# chmod 755 /etc/init.d/mysqld [root@localhost mysql]# ls -l //查看呢修改事后的权限 /etc/init.d/mysqld -rwxr-xr-x 1 root root 10594 2月 28 11:41 /etc/init.d/mysqld
增长如下两句:
basedir=/usr/local/mysql//MySQL包所在路径
datadir=/data/mysql //定义数据存放的地方
定义路径是不要留空格会报错。
[root@localhost mysql]# chkconfig --add mysqld [root@localhost mysql]# chkconfig --list 注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。 若是您想列出 systemd 服务,请执行 'systemctl list-unit-files'。 欲查看对特定 target 启用的服务请执行 'systemctl list-dependencies [target]'。 mysqld 0:关 1:关 2:开 3:开 4:开 5:开 6:关 netconsole 0:关 1:关 2:关 3:关 4:关 5:关 6:关 network 0:关 1:关 2:开 3:关 4:关 5:关 6:关 [root@localhost mysql]# chkconfig --add mysqld //把mysqld服务加入到系统服务列表中 [root@localhost mysql]# chkconfig mysqld on //开机启动mysqld [root@localhost mysql]# service mysqld start //启动mysqld Starting MySQL.Logging to '/data/mysql/zlinux.err'. . SUCCESS!
若是启动不了,请到 /data/mysql/ 下查看错误日志,这个日志一般是主机名.err.。 检查mysql是否启动的命令为:
[root@localhost mysql]# ps aux |grep mysql root 5505 0.0 0.0 11776 1568 pts/0 S 11:46 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/localhost.localdomain.pid mysql 5612 0.1 24.8 1302876 464396 pts/0 Sl 11:46 0:04 /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 root 6527 0.0 0.0 112676 976 pts/0 S+ 12:47 0:00 grep --color=auto mysql
[root@localhost mysql]# 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:111 0.0.0.0:* LISTEN 1/systemd tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1744/dnsmasq tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1069/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1067/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1580/master tcp6 0 0 :::3306 :::* LISTEN 5612/mysqld tcp6 0 0 :::111 :::* LISTEN 1/systemd tcp6 0 0 :::22 :::* LISTEN 1069/sshd tcp6 0 0 ::1:631 :::* LISTEN 1067/cupsd tcp6 0 0 ::1:25 :::* LISTEN 1580
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql &
[root@localhost mysql]# service mysqld stop Shutting down MySQL.. SUCCESS! [root@localhost mysql]# !ps ps aux |grep mysql root 6653 0.0 0.0 112676 972 pts/0 S+ 12:55 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 & [1] 6683 [root@localhost mysql]# 180228 12:58:11 mysqld_safe Logging to '/data/mysql/localhost.localdomain.err'. 180228 12:58:11 mysqld_safe Starting mysqld daemon with databases from /data/mysql ^C
ps查看是否启动
[root@localhost mysql]# !ps ps aux |grep mysql root 6683 0.0 0.0 113264 1596 pts/0 S 12:58 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql mysql 6778 1.0 24.4 1302876 455756 pts/0 Sl 12:58 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 root 6809 0.0 0.0 112676 976 pts/0 S+ 12:58 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:111 0.0.0.0:* LISTEN 1/systemd tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1744/dnsmasq tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1069/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1067/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1580/master tcp6 0 0 :::3306 :::* LISTEN 6778/mysqld tcp6 0 0 :::111 :::* LISTEN 1/systemd tcp6 0 0 :::22 :::* LISTEN 1069/sshd tcp6 0 0 ::1:631 :::* LISTEN 1067/cupsd tcp6 0 0 ::1:25 :::* LISTEN 1580/master
必须以killall命令杀掉进程,比较安全。 killall 命令会先把程序执行完毕,才杀掉进程。 若是killall等了好久都没有杀死,说明数据量很大,须要写到磁盘中完毕后,慢慢杀死; 若是强制杀死kill+PID,可能致使数据丢失或表的损坏。
[ ] service mysqld start
[ ] service mysqld stop
[root@localhost mysql]# killall mysqld [root@localhost mysql]# 180228 13:05:00 mysqld_safe mysqld from pid file /data/mysql/localhost.localdomain.pid ended ^C [1]+ 完成 /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 6941 0.0 0.0 112676 976 pts/0 S+ 13:06 0:00 grep --color=auto mysql