mysql数据库基础 源码编译安装lamp
1:属于中小型关系型数据库,流行广泛,企业应用面广,开源免费。
2:适用于多种平台 linux windows unix ......
3:安装方式:
平台内软件安装
二进制格式的程序包安装
源代码编译安装(linux系统)
4:SQL引擎 键入SQL语句进行解释处理
1.定义 构成
数据:
描述事物符号记录。(包括数字、文字、图形、图像、声音、档案记录等)以记录形式统一的格式进行存储。
2.数据库的构成:
数据:
表:将不同的记录(数据)组织在一起,就形成了表;用于存储数据。(表是存储数据的唯一单位)
库:表的集合体,是存储数据的仓库,以一定的组织方式存储的互相有关的数据。
库--->表--->数据(行、列)
3.数据库管理系统(DBMS)关系型数据库管理系统
将二维关系数据结构模型规范得以实现,我们称为数据库管理系统DBMS
数据库管理系统的分类:
DBMS:数据库管理系统
RDBMS:关系型数据库管理系统
NOSQL:非关系型数据库
NEWSQL:新型数据库
关系型数据库管理系统(RDBMS)
包括 开源解决方案: mysql、mariadb、Percona-server、pgsql .....
商业解决方案: ORACLE、DB2、MS-SQL(SQLSERVER) ......
1.)Mysql操作 创建删除数据库 创建删除表
1.连接mysql创建和删除用户 mysql语句mysql -u -p -h
1.)SQL语句选项 :
-u USERNAME: 用户名 默认为root(Linux)
-h HOST:服务器主机 默认为localhost
-p PASSWORD:用户的密码 (Linux默认为空)
注意:mysql用户帐号由两部分组成:’USERNAME’@’HOST’;其中HOST用于此用户通过哪些远程主机连接mysql服务。
2.)创建用户
在客户端 输入 mysql -u root -p123456
grant all on bbs*.* to 'runbbs'@'%' identified by '123456'; 创建用户
把bbs .* 数据库里面 所有的表 给一个'root' all所有的权限 '%使这个用户可以从任何终端登录 identified 主机 密码是1234536
delete from mysql.user where user='rubbs' -删除rubbs用户
2.mysql的基本使用操作 show查看库 use进入库
show (查看默认库databases ,进入库查看表 tables , view , privilges)
USE ( 库名字 NAME)
SELECT (查询表中的数据) 如果列太多,无法再屏幕上显示,那么可以在后面介入\G来以竖向显示
mysql -u root -p ---输入密码123
show databases; --查看数据库的默认库
use mysql; ---进入库
show tables; ---查看库
select * from user \G; --查看user表的信息 \G 排序
select * from user \G;
DESC(查询表的结构相关属性)
desc user; 描述表结构
desc mysql.user; 描述 什么什么库下面 . 什么什么表
绝对路径:DATABASE.TABLE
select user,password from mysql.user;
从 mysql.这个库下的user表 ;查询出user,password 这两个字段
3.mysql语句的操作 语句分为三类
SQL语句分为三类
DDL:数据定义语言 CREATE创建,DROP删除,ALTER修改(针对的组件基本为数据库 数据表...... )
DML: 数据操作语言 INSERT插入,DELETE删除,UPDATE更新,SELECT查询
DCL:数据控制语言 GRANT赋予权限,REVOKE撤销权限 (授权和撤销授权).....
命令帮助(查看帮助文档)
HELP KEYWORD(命令关键字) helpshow
? (相当于HELP)
4.创建数据库create database 库;
格式:CREATE DATABASE [IF NOT EXISTS] ‘DB_NAME’;
[IF NOT EXISTS如果创建用户存在就不创建]
同时可以指定字符集和排序规则
create database uuuu; --创建uuuu数据库
create database uuuuu charset=utf8; --创建uuuuu数据库 指定字符集
show databases; --查看数据库
5.删除数据库 drop database 库; (慎用)
格式: DROP DATABASE [IF EXISTS] ‘DB_NAME’;(非常危险,生产环境不建议使用)’
[IF EXISTS] 如果存在就删除,不存在就不删除
drop database uuuu; -删除uuuu库
show databases; -查看所有数据库
6.创建表:create table 表kkk (数据类型,修饰符)
格式: CREATE TABLE 表名(字段1 数据类型 修饰符,字段2 数据类型 修饰符......) [ENGINE=’]
use uuuuu;进入数据库
create table kkk ( id int(5) primary key,name char(16) ); 创建表 第一个为主键
desc kkk;
create table students(id int(5) unsigned auto_increment primary key,name char(16) not null);
create table 创建一个数据表
students 数据表为students
id 第一个字段 有id
int(5) 存放数据是整形5给字节
unsigned 无符号
auto_increment 自动增长
primary key 主键
namename字段
char(16) 16个字符
not null不能为空
查看存储引擎:SHOW ENGINES;
7.删除表; drop table 表;
drop table [IF EXISTS] ‘tbl_name’; (非常危险,谨慎操作)
[IF EXISTS] 如果存在就删除
drop table kkk; -删除kkk则这个表
show tables; --查看表
1. mysql 增删减改 插入数据操作 快捷键操作
快捷键操作
ctrl+u:光标删除至最左侧
ctrl+k:光标删除至最右侧侧
ctrl+l:清屏
exit:退出sql接口(或者quit 或者\q)
1.增:insert into 增加tbl表的内容,
格式: insert into tbl table_name标题 ( field1, field2,...fieldN )
VALUES 内容( value1, value2,...valueN );
insert into tbl ( id, name) values (1,'kkk'); --id,name标题 1,kkk内容
insert into tbl ( id, name) values (2,'kkk1'),(3,'kkk2'); --逗号隔开增加多条内容
select * from tbl; ---查看表内容
2.删delete from 表名tbl where 指定的属性id =3;
delete from table_name [WHERE Clause];
[WHERE Clause]; -删除指定的某个属性
delete from tbl where id =3;
3.改; update 表tbl set name='kwz'改之后 where name='kkk1';改之前的 kwz注意字符串 ‘ ’ 括起来
格式: update 加表名字 SET field1=’new-value1’, ‘field2=new-value2’
Where field3=’xxxxx’; field3xxxx 改为 field1new... 和2
update tbl set name='kwz' where name='kkk1'; kkk1改为kwz
select * from tbl; --查看表内容
4.查: select 表标题id from那个表 tbl where查看什么内容 name='kwz';
格式:SELECT field1, field2,...fieldN FROM table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
SELECT field1, field2,...fieldN 要查看的字段或者属性可以查看多个属性,逗号隔开
FROM table_name1 , table_name2. 来自那个表, 查看多个表逗号隔开,
[WHERE condition1 指定查看那条记录
[AND [OR]] condition2..... 与 表示两个条件同时生效 或 表示一个即可
select id from tbl where name='kwz'; 从tbl表 查看 叫kwz的id
select id,name from tbl where name='kwz'; 查看 tbl表中kwz的id 和name 逗号隔开
3.centos7.4源码编译安装lamp
lamp简介
Linux+Apache+Mysql/MariaDB+PHP一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。apache相对nginx来说更加稳定,动态页面的处理更加合适。
1.基本 编译环境构建 安装开发工具 mariadb依赖两个包
本次要联网安装 安装开发工具 (解决关系yumgroups mark cnvert)
系统版本:CentOS 7.4 x86_64
安装开发包:
Development Tools,中文名:开发工具
yum groupinstall Development\ Tools -y
中文的为:
yum groupinstall ----安装开发工具
编译安装mariadb需要cmake ncurses-devel这两个包
yum install cmake -y --安装依赖包
yum install ncurses-devel.x86_64 -y
2.编译安装httpd-2.4.33
这里我们构建MPM为默认模块,需要apr和apr-util 1.5以上的版本因此先到官方网站去下载相应版本
官方网站地址 https://apr.apache.org/
先编译安装apr,apr-util之后要依赖apr
wget http://archive.apache.org/dist/apr/apr-1.5.1.tar.gz --网上下载软件包
1.或者源码解压apr 配置(configure)、编译(make)、安装( make install ).
tar xvf apr-1.5.1.tar.gz ---解压安装包
cd apr-1.5.1/
./configure --prefix=/usr/local/apr
--配置环境执行当前目录下面的文件 –prefix选项是配置安装的路径.
make && make install
2.之后编译安装apr-util
wget http://archive.apache.org/dist/apr/apr-util-1.5.4.tar.gz 网上下载
或者解压安装包
tar xvf apr-util-1.5.4.tar.gz ---解压安装包
cd apr-util-1.5.4/
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
注意prefix是配置安装的路径.--with-apr要指明apr的安装目录,apr-util要依赖apr编译
make && make install 编译安装
3.httpd编译
依赖的包yum安装即可,这里提前安装以便编译过程一次通过
yum install pcre-devel.x86_64 -y ---依赖包
yum install openssl-devel.x86_64 -y
下载并且编译安装httpd
wget http://archive.apache.org/dist/httpd/httpd-2.4.33.tar.gz 网上下载
tar xvf httpd-2.4.33.tar.gz --解压
cd httpd-2.4.33/
./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-modules=most --enable-mpms-shared=all --with-mpm=event(prefork) --配置
make && make install ---- 编译安装
4 ./configure注释:
--prefix=/usr/local/apache 指明编译安装的路径
--sysconfdir=/etc/httpd24 指明配置文件的路径
--enable-so 支持动态装载卸载模块
--enable-ssl 支持https通信
--enable-cgi 支持cgi协议
--enable-rewrite支持url重写
--with-zlib 支持数据压缩
--with-pcre 兼容正则表达式
--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util 指明apr和apr-util路径
--enable-modules=most 支持大多数模块
--enable-mpms-shared=all支持全部的工作模型
--with-mpm=event(prefork) 默认工作模式为event(prefork)
3编辑主配置文件vim /etc/httpd24/httpd.conf 添加如下行即可:(网站名 dflate和rewrite模块 )
vim /etc/httpd24/httpd.conf
在最后添加 PidFile "/var/run/httpd.pid"
记得添加 ServerName www.ujiuye.com:80
需要启用dflate和rewrite模块 解开即可
LoadModule deflate_module modules/mod_deflate.so
LoadModule rewrite_module modules/mod_rewrite.so
4.添加PATH变量
vim /etc/profile
添加如下字段
export PATH=$PATH:/usr/local/apache/bin
或者
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/apache/bin
5.保存之后重读配置文件 重启立即生效source 查看curl抓取网页:
source /etc/profile --重读配置文件
启动httpd验证httpd能够正常工作
apachectl start ---重启
curl 127.0.0.1 --查看
显示如下字段证明可以正常工作
到此为止httpd编译基本完成。
8.如果想要更改运行账号和所属组可以通过修改配置文件的user和group字段为apache
useradd -r -s /sbin/nologin apache
chown -R apache:apache /usr/local/apache
4.源码编译安装mariadb
1.获取mariadb的源码包
wget http://mirrors.neusoft.edu.cn/mariadb//mariadb-10.2.14/source/mariadb-10.2.14.tar.gz
到https://downloads.mariadb.org/mariadb/10.2.14/下载
2.解压并且进入目录
tar xvf mariadb-10.2.14.tar.gz
cd mariadb-10.2.14/
使用cmake进行编译安装
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DPLUGIN_TOKUDB=NO
make && make install
# 注:
#第一行是mysql主程序安装目录
#第二行是配置文件目录
#第三行默认字符集为utf8
#第四行默认的字符集效对规则
#第五行安装所有字符集
3.添加mysql用户和组
useradd -r -M -s /sbin/nologin mysql
-r 指定建立用户为系统用户 -M不创建家目录(因为是系统用户可以不建立) -s指定不能用来登录
chown mysql:root /usr/local/mysql/
所属用户为 mysql 所属组为root
4.进行一些基本配置
cp support-files/my-large.cnf /etc/my.cnf #复制配置文件
cp support-files/mysql.server /etc/init.d/mysqld #复制启动脚本
ls -l /etc/init.d/mysqld ----查看目录权限
chmod a+x /etc/init.d/mysqld ---增加可执行权限
vim /etc/my.cnf 增加配置选项三个 datadir innodb skip
datadir = /mydata #指定数据库路径,不然无法启动mysql 自己定义
innodb_file_per_table = on #设置后当创建数据库的表的时候表文件都会分离开,方便复制表,不开启创建的表都在一个文件
skip_name_resolve = on #跳过名称反解,Mysql每次使用客户端链接时都会把ip地址反解成主机名
5.添加环境变量vim /etc/profile (优化)
echo '/usr/local/mysql/bin/' >> /etc/profile -把这个添加到环境变量里
vim /etc/profile ---编辑环境变量 写入下面内容
export PATH=$PATH: /usr/local/apache/bin:/usr/local/mysql/bin
#添加mysql的目录 一个是 apache 和 mysql
或者PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/apache/bin:/usr/local/mysql/bin
source /etc/profile --生效
echo $PATH ---查看$PATH
6.初始化数据库 并启动数据库service mysqld start 查看端口服务
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/mydata/ --初始化
注释
/usr/local/mysql/scripts/mysql_install_db 脚本
--user=mysql 用户
--basedir=/usr/local/mysql 安装数据库
--datadir=/mydata/ 表存放路径
启动数据库
service mysqld start
netstat -antulp | grep :3306 --端口
ps aux | grep mysqld --进程
7.安全初始化,这里会要求设置密码,(删除空用户 设置密码)
/usr/local/mysql/bin/mysql_secure_installation
完成下面内容填写
Enter current password for root (enter for none): 当前用户密码(没有设置所以 回车为空)
Set root password? [Y/n] --要为root用户设置密码吗 yes 123
Remove anonymous users? [Y/n] - -删除掉匿名用户吗 yes
Disallow root login remotely? [Y/n] --拒绝root用户远程登录吗(no)等下远程登录测试 看生产环境
Remove test database and access to it? [Y/n] -把测试数据库都删除no
测试不删除 生产环境删除
Reload privilege tables now? [Y/n] --重新加载权限表吗 yes
mysql基本完成
8.用户登录测试
5.编译安装php
编译过程中缺少的一些包
yum install libxml2-devel.x86_64 -y
yum install bzip2-devel.x86_64 -y
1.下载php-7.2.5并且解压
wget http://us1.php.net/distributions/php-7.2.5.tar.bz2 下载
tar xvf php-7.2.5.tar.bz2 --解压
cd php-7.2.5/ --到目录下去配置
编译安装php
./configure --prefix=/usr/local/php --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts
make && make install
2.注释解读./configure
--prefix=/usr/local/php 安装路径
--with-mysqli=mysqlnd 指定mycql连接的中间键工具
--with-pdo-mysql=mysqlnd 指定连接mycql
--with-openssl 支持ssl加密
--enable-mbstring
--with-freetype-dir
--with-jpeg-dir
--with-png-dir png
--with-zlib 压缩
--with-libxml-dir=/usr --enable-xml
--enable-sockets
--with-apxs2=/usr/local/apache/bin/apxs
--with-config-file-path=/etc
--with-config-file-scan-dir=/etc/php.d 加载php.d的文件
--with-bz2
--enable-maintainer-zts
#这里要注意的是原来的--with-mysql在5.5废弃,在php7开始被移除,之后推荐使用 MySQLi 或 PDO_MySQL 扩展来替换
3.配置文件
1.为php提供配置文件:
cd php-7.2.5/
cp php.ini-production /etc/php.ini 复制重命名为php.ini
2.编辑apache配置文件httpd.conf,以apache支持php
vim /etc/httpd24/httpd.conf添加如下二行 388行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
3.vim /etc/httpd24/httpd.conf 定位至260左右
修改为:
DirectoryIndex index.php index.html -先读取php,在读取html
4.增加mysql用户,修改php网页cd/usr/local/apache/htdocs/
1.增加mysql用户 使其远程登录
mysql -uroot -p123 主机登录 mysql
grant all on *.* to 'root'@'%' identified by '123'; 增加一个用户root所有权限使 其可以在任何主机远程连接登录 密码为 123
flush privileges; --刷新
2. 修改测试页面vim /usr/local/apache/htdocs/index.php
phpinfo();
?>
$link = mysqli_connect('192.168.10.110','root','123'); 添加远程登录的用户IP 密码
if ($link)
echo "Success...";
else
echo "Failure...";
mysql_close();
?>
重新启动httpd,或让其重新载入配置文件 测试php是否已经可以正常使用。
apachectl stop 关闭
apachectl start 启动
网页查看 http://192.168.10.110
Success...说明连接数据库成功了
5.在网页根路径部署discuz论坛项目,验证LAMP架构可用性 解压Discuz
把ComsenzDiscuz-DiscuzX-master.zip包拖拽至服务器内,然后进行unzip解压,解压之后出现upload目录,将其重命名并移动到网页根路径
unzip ComsenzDiscuz-DiscuzX-master.zip 解压
cd DiscuzX/
cp -rf upload/ /usr/local/apache/htdocs/discuz 复制目录值网页根路径下
cd /usr/local/apache/htdocs
6.创建discuz项目数据库bbs,便于项目数据的存储
进入mariadb数据命令行界面
mysql -u root -p 密码为root用户 密码123
create database bbs;
7.创建普通用户来管理discuz对应的bbs数据的所有数据
grant all on bbs.* to 'rubbs'@'%' identified by '123456';
把bbs .* 数据库里面 所有的表 给一个'runbbs' all所有的权限 '%使这个用户可以从任何终端登录 identified 主机 密码是1234536
flush privileges; 刷新
quit 退出
8.更改php主配置文件,使其支持短格式选项
可在网页 php 那里找到php的主配置文件
vim /etc/php.ini
211 short_open_tag = On --支持短格式
重启httpd服务
systemctl restart httpd
9.开始部署安装配置 discuz论坛项目
chmod -R 777 /usr/local/apache/htdocs/discuz/ 设置权限
在浏览器输入
http://192.168.10.110/discuz/install/
选择全新安装,点击下一步,
输入数据库ip地址:192.168.10.40,数据库的名称:bbs,数据库用户名:runbbs,管理员的密码:123456
http://192.168.10.110/discuz/admin.php 登录管理员
管理员页面:http://192.168.10.110/discuz/admin.php?,输入admin的密码,登录
6.补充安装GD库
GD库是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片,也可以给图片加水印。
1:首先下载三个包(GD前置库),并分别解压
2:开始编译freetype
tar xvf freetype-2.4.8.tar.bz2
cd freetype-2.4.8/
./configure --prefix=/usr/local/freetype && make && make install
3:编译jpegsrc
tar xvf jpegsrc.v9.tar.gz
cd cd jpeg-9/
CFLAGS="-O3 -fPIC"
./configure --prefix=/usr/local/jpeg && make && make install
4:编译libpng
tar xvf libpng-1.2.56.tar.gz
cd libpng-1.2.56/
CFLAGS="-O3 -fPIC"
./configure --prefix=/usr/local/libpng && make && make install
5:编译成功后进入php源代码包安装路径的GD库路径 进入GD库目录添加模块,不用重新编译php,使用命令phpize
cd /root/php-7.2.5/ext/gd
/usr/local/php/bin/phpize
6.开始编译GD库模块
./configure --with-php-config=/usr/local/php/bin/php-config --with-jpeg-dir=/usr/local/jpeg --with-png-dir=/usr/local/libpng --with-freetype-dir=/usr/local/freetype
make && make install
7.编译完成后修改php主配置文件vim /etc/php.ini
在 ;extension=php_gd2.dll 下面添加一行 extension=gd.so
8.加载GD模块并确认
输入/usr/local/php/bin/php -m
9.重启apache服务然后验证即可。http://192.168.10.110/
mysql数据库基础 源码编译安装lamp
1:属于中小型关系型数据库,流行广泛,企业应用面广,开源免费。
2:适用于多种平台 linux windows unix ......
3:安装方式:
平台内软件安装
二进制格式的程序包安装
源代码编译安装(linux系统)
4:SQL引擎 键入SQL语句进行解释处理
1.定义 构成
数据:
描述事物符号记录。(包括数字、文字、图形、图像、声音、档案记录等)以记录形式统一的格式进行存储。
2.数据库的构成:
数据:
表:将不同的记录(数据)组织在一起,就形成了表;用于存储数据。(表是存储数据的唯一单位)
库:表的集合体,是存储数据的仓库,以一定的组织方式存储的互相有关的数据。
库--->表--->数据(行、列)
3.数据库管理系统(DBMS)关系型数据库管理系统
将二维关系数据结构模型规范得以实现,我们称为数据库管理系统DBMS
数据库管理系统的分类:
DBMS:数据库管理系统
RDBMS:关系型数据库管理系统
NOSQL:非关系型数据库
NEWSQL:新型数据库
关系型数据库管理系统(RDBMS)
包括 开源解决方案: mysql、mariadb、Percona-server、pgsql .....
商业解决方案: ORACLE、DB2、MS-SQL(SQLSERVER) ......
1.)Mysql操作 创建删除数据库 创建删除表
1.连接mysql创建和删除用户 mysql语句mysql -u -p -h
1.)SQL语句选项 :
-u USERNAME: 用户名 默认为root(Linux)
-h HOST:服务器主机 默认为localhost
-p PASSWORD:用户的密码 (Linux默认为空)
注意:mysql用户帐号由两部分组成:’USERNAME’@’HOST’;其中HOST用于此用户通过哪些远程主机连接mysql服务。
2.)创建用户
在客户端 输入 mysql -u root -p123456
grant all on bbs*.* to 'runbbs'@'%' identified by '123456'; 创建用户
把bbs .* 数据库里面 所有的表 给一个'root' all所有的权限 '%使这个用户可以从任何终端登录 identified 主机 密码是1234536
delete from mysql.user where user='rubbs' -删除rubbs用户
2.mysql的基本使用操作 show查看库 use进入库
show (查看默认库databases ,进入库查看表 tables , view , privilges)
USE ( 库名字 NAME)
SELECT (查询表中的数据) 如果列太多,无法再屏幕上显示,那么可以在后面介入\G来以竖向显示
mysql -u root -p ---输入密码123
show databases; --查看数据库的默认库
use mysql; ---进入库
show tables; ---查看库
select * from user \G; --查看user表的信息 \G 排序
select * from user \G;
DESC(查询表的结构相关属性)
desc user; 描述表结构
desc mysql.user; 描述 什么什么库下面 . 什么什么表
绝对路径:DATABASE.TABLE
select user,password from mysql.user;
从 mysql.这个库下的user表 ;查询出user,password 这两个字段
3.mysql语句的操作 语句分为三类
SQL语句分为三类
DDL:数据定义语言 CREATE创建,DROP删除,ALTER修改(针对的组件基本为数据库 数据表...... )
DML: 数据操作语言 INSERT插入,DELETE删除,UPDATE更新,SELECT查询
DCL:数据控制语言 GRANT赋予权限,REVOKE撤销权限 (授权和撤销授权).....
命令帮助(查看帮助文档)
HELP KEYWORD(命令关键字) helpshow
? (相当于HELP)
4.创建数据库create database 库;
格式:CREATE DATABASE [IF NOT EXISTS] ‘DB_NAME’;
[IF NOT EXISTS如果创建用户存在就不创建]
同时可以指定字符集和排序规则
create database uuuu; --创建uuuu数据库
create database uuuuu charset=utf8; --创建uuuuu数据库 指定字符集
show databases; --查看数据库
5.删除数据库 drop database 库; (慎用)
格式: DROP DATABASE [IF EXISTS] ‘DB_NAME’;(非常危险,生产环境不建议使用)’
[IF EXISTS] 如果存在就删除,不存在就不删除
drop database uuuu; -删除uuuu库
show databases; -查看所有数据库
6.创建表:create table 表kkk (数据类型,修饰符)
格式: CREATE TABLE 表名(字段1 数据类型 修饰符,字段2 数据类型 修饰符......) [ENGINE=’]
use uuuuu;进入数据库
create table kkk ( id int(5) primary key,name char(16) ); 创建表 第一个为主键
desc kkk;
create table students(id int(5) unsigned auto_increment primary key,name char(16) not null);
create table 创建一个数据表
students 数据表为students
id 第一个字段 有id
int(5) 存放数据是整形5给字节
unsigned 无符号
auto_increment 自动增长
primary key 主键
namename字段
char(16) 16个字符
not null不能为空
查看存储引擎:SHOW ENGINES;
7.删除表; drop table 表;
drop table [IF EXISTS] ‘tbl_name’; (非常危险,谨慎操作)
[IF EXISTS] 如果存在就删除
drop table kkk; -删除kkk则这个表
show tables; --查看表
1. mysql 增删减改 插入数据操作 快捷键操作
快捷键操作
ctrl+u:光标删除至最左侧
ctrl+k:光标删除至最右侧侧
ctrl+l:清屏
exit:退出sql接口(或者quit 或者\q)
1.增:insert into 增加tbl表的内容,
格式: insert into tbl table_name标题 ( field1, field2,...fieldN )
VALUES 内容( value1, value2,...valueN );
insert into tbl ( id, name) values (1,'kkk'); --id,name标题 1,kkk内容
insert into tbl ( id, name) values (2,'kkk1'),(3,'kkk2'); --逗号隔开增加多条内容
select * from tbl; ---查看表内容
2.删delete from 表名tbl where 指定的属性id =3;
delete from table_name [WHERE Clause];
[WHERE Clause]; -删除指定的某个属性
delete from tbl where id =3;
3.改; update 表tbl set name='kwz'改之后 where name='kkk1';改之前的 kwz注意字符串 ‘ ’ 括起来
格式: update 加表名字 SET field1=’new-value1’, ‘field2=new-value2’
Where field3=’xxxxx’; field3xxxx 改为 field1new... 和2
update tbl set name='kwz' where name='kkk1'; kkk1改为kwz
select * from tbl; --查看表内容
4.查: select 表标题id from那个表 tbl where查看什么内容 name='kwz';
格式:SELECT field1, field2,...fieldN FROM table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
SELECT field1, field2,...fieldN 要查看的字段或者属性可以查看多个属性,逗号隔开
FROM table_name1 , table_name2. 来自那个表, 查看多个表逗号隔开,
[WHERE condition1 指定查看那条记录
[AND [OR]] condition2..... 与 表示两个条件同时生效 或 表示一个即可
select id from tbl where name='kwz'; 从tbl表 查看 叫kwz的id
select id,name from tbl where name='kwz'; 查看 tbl表中kwz的id 和name 逗号隔开
3.centos7.4源码编译安装lamp
lamp简介
Linux+Apache+Mysql/MariaDB+PHP一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。apache相对nginx来说更加稳定,动态页面的处理更加合适。
1.基本 编译环境构建 安装开发工具 mariadb依赖两个包
本次要联网安装 安装开发工具 (解决关系yumgroups mark cnvert)
系统版本:CentOS 7.4 x86_64
安装开发包:
Development Tools,中文名:开发工具
yum groupinstall Development\ Tools -y
中文的为:
yum groupinstall ----安装开发工具
编译安装mariadb需要cmake ncurses-devel这两个包
yum install cmake -y --安装依赖包
yum install ncurses-devel.x86_64 -y
2.编译安装httpd-2.4.33
这里我们构建MPM为默认模块,需要apr和apr-util 1.5以上的版本因此先到官方网站去下载相应版本
官方网站地址 https://apr.apache.org/
先编译安装apr,apr-util之后要依赖apr
wget http://archive.apache.org/dist/apr/apr-1.5.1.tar.gz --网上下载软件包
1.或者源码解压apr 配置(configure)、编译(make)、安装( make install ).
tar xvf apr-1.5.1.tar.gz ---解压安装包
cd apr-1.5.1/
./configure --prefix=/usr/local/apr
--配置环境执行当前目录下面的文件 –prefix选项是配置安装的路径.
make && make install
2.之后编译安装apr-util
wget http://archive.apache.org/dist/apr/apr-util-1.5.4.tar.gz 网上下载
或者解压安装包
tar xvf apr-util-1.5.4.tar.gz ---解压安装包
cd apr-util-1.5.4/
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
注意prefix是配置安装的路径.--with-apr要指明apr的安装目录,apr-util要依赖apr编译
make && make install 编译安装
3.httpd编译
依赖的包yum安装即可,这里提前安装以便编译过程一次通过
yum install pcre-devel.x86_64 -y ---依赖包
yum install openssl-devel.x86_64 -y
下载并且编译安装httpd
wget http://archive.apache.org/dist/httpd/httpd-2.4.33.tar.gz 网上下载
tar xvf httpd-2.4.33.tar.gz --解压
cd httpd-2.4.33/
./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-modules=most --enable-mpms-shared=all --with-mpm=event(prefork) --配置
make && make install ---- 编译安装
4 ./configure注释:
--prefix=/usr/local/apache 指明编译安装的路径
--sysconfdir=/etc/httpd24 指明配置文件的路径
--enable-so 支持动态装载卸载模块
--enable-ssl 支持https通信
--enable-cgi 支持cgi协议
--enable-rewrite支持url重写
--with-zlib 支持数据压缩
--with-pcre 兼容正则表达式
--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util 指明apr和apr-util路径
--enable-modules=most 支持大多数模块
--enable-mpms-shared=all支持全部的工作模型
--with-mpm=event(prefork) 默认工作模式为event(prefork)
3编辑主配置文件vim /etc/httpd24/httpd.conf 添加如下行即可:(网站名 dflate和rewrite模块 )
vim /etc/httpd24/httpd.conf
在最后添加 PidFile "/var/run/httpd.pid"
记得添加 ServerName www.ujiuye.com:80
需要启用dflate和rewrite模块 解开即可
LoadModule deflate_module modules/mod_deflate.so
LoadModule rewrite_module modules/mod_rewrite.so
4.添加PATH变量
vim /etc/profile
添加如下字段
export PATH=$PATH:/usr/local/apache/bin
或者
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/apache/bin
5.保存之后重读配置文件 重启立即生效source 查看curl抓取网页:
source /etc/profile --重读配置文件
启动httpd验证httpd能够正常工作
apachectl start ---重启
curl 127.0.0.1 --查看
显示如下字段证明可以正常工作
到此为止httpd编译基本完成。
8.如果想要更改运行账号和所属组可以通过修改配置文件的user和group字段为apache
useradd -r -s /sbin/nologin apache
chown -R apache:apache /usr/local/apache
4.源码编译安装mariadb
1.获取mariadb的源码包
wget http://mirrors.neusoft.edu.cn/mariadb//mariadb-10.2.14/source/mariadb-10.2.14.tar.gz
到https://downloads.mariadb.org/mariadb/10.2.14/下载
2.解压并且进入目录
tar xvf mariadb-10.2.14.tar.gz
cd mariadb-10.2.14/
使用cmake进行编译安装
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DPLUGIN_TOKUDB=NO
make && make install
# 注:
#第一行是mysql主程序安装目录
#第二行是配置文件目录
#第三行默认字符集为utf8
#第四行默认的字符集效对规则
#第五行安装所有字符集
3.添加mysql用户和组
useradd -r -M -s /sbin/nologin mysql
-r 指定建立用户为系统用户 -M不创建家目录(因为是系统用户可以不建立) -s指定不能用来登录
chown mysql:root /usr/local/mysql/
所属用户为 mysql 所属组为root
4.进行一些基本配置
cp support-files/my-large.cnf /etc/my.cnf #复制配置文件
cp support-files/mysql.server /etc/init.d/mysqld #复制启动脚本
ls -l /etc/init.d/mysqld ----查看目录权限
chmod a+x /etc/init.d/mysqld ---增加可执行权限
vim /etc/my.cnf 增加配置选项三个 datadir innodb skip
datadir = /mydata #指定数据库路径,不然无法启动mysql 自己定义
innodb_file_per_table = on #设置后当创建数据库的表的时候表文件都会分离开,方便复制表,不开启创建的表都在一个文件
skip_name_resolve = on #跳过名称反解,Mysql每次使用客户端链接时都会把ip地址反解成主机名
5.添加环境变量vim /etc/profile (优化)
echo '/usr/local/mysql/bin/' >> /etc/profile -把这个添加到环境变量里
vim /etc/profile ---编辑环境变量 写入下面内容
export PATH=$PATH: /usr/local/apache/bin:/usr/local/mysql/bin
#添加mysql的目录 一个是 apache 和 mysql
或者PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/apache/bin:/usr/local/mysql/bin
source /etc/profile --生效
echo $PATH ---查看$PATH
6.初始化数据库 并启动数据库service mysqld start 查看端口服务
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/mydata/ --初始化
注释
/usr/local/mysql/scripts/mysql_install_db 脚本
--user=mysql 用户
--basedir=/usr/local/mysql 安装数据库
--datadir=/mydata/ 表存放路径
启动数据库
service mysqld start
netstat -antulp | grep :3306 --端口
ps aux | grep mysqld --进程
7.安全初始化,这里会要求设置密码,(删除空用户 设置密码)
/usr/local/mysql/bin/mysql_secure_installation
完成下面内容填写
Enter current password for root (enter for none): 当前用户密码(没有设置所以 回车为空)
Set root password? [Y/n] --要为root用户设置密码吗 yes 123
Remove anonymous users? [Y/n] - -删除掉匿名用户吗 yes
Disallow root login remotely? [Y/n] --拒绝root用户远程登录吗(no)等下远程登录测试 看生产环境
Remove test database and access to it? [Y/n] -把测试数据库都删除no
测试不删除 生产环境删除
Reload privilege tables now? [Y/n] --重新加载权限表吗 yes
mysql基本完成
8.用户登录测试
5.编译安装php
编译过程中缺少的一些包
yum install libxml2-devel.x86_64 -y
yum install bzip2-devel.x86_64 -y
1.下载php-7.2.5并且解压
wget http://us1.php.net/distributions/php-7.2.5.tar.bz2 下载
tar xvf php-7.2.5.tar.bz2 --解压
cd php-7.2.5/ --到目录下去配置
编译安装php
./configure --prefix=/usr/local/php --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts
make && make install
2.注释解读./configure
--prefix=/usr/local/php 安装路径
--with-mysqli=mysqlnd 指定mycql连接的中间键工具
--with-pdo-mysql=mysqlnd 指定连接mycql
--with-openssl 支持ssl加密
--enable-mbstring
--with-freetype-dir
--with-jpeg-dir
--with-png-dir png
--with-zlib 压缩
--with-libxml-dir=/usr --enable-xml
--enable-sockets
--with-apxs2=/usr/local/apache/bin/apxs
--with-config-file-path=/etc
--with-config-file-scan-dir=/etc/php.d 加载php.d的文件
--with-bz2
--enable-maintainer-zts
#这里要注意的是原来的--with-mysql在5.5废弃,在php7开始被移除,之后推荐使用 MySQLi 或 PDO_MySQL 扩展来替换
3.配置文件
1.为php提供配置文件:
cd php-7.2.5/
cp php.ini-production /etc/php.ini 复制重命名为php.ini
2.编辑apache配置文件httpd.conf,以apache支持php
vim /etc/httpd24/httpd.conf添加如下二行 388行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
3.vim /etc/httpd24/httpd.conf 定位至260左右
修改为:
DirectoryIndex index.php index.html -先读取php,在读取html
4.增加mysql用户,修改php网页cd/usr/local/apache/htdocs/
1.增加mysql用户 使其远程登录
mysql -uroot -p123 主机登录 mysql
grant all on *.* to 'root'@'%' identified by '123'; 增加一个用户root所有权限使 其可以在任何主机远程连接登录 密码为 123
flush privileges; --刷新
2. 修改测试页面vim /usr/local/apache/htdocs/index.php
phpinfo();
?>
$link = mysqli_connect('192.168.10.110','root','123'); 添加远程登录的用户IP 密码
if ($link)
echo "Success...";
else
echo "Failure...";
mysql_close();
?>
重新启动httpd,或让其重新载入配置文件 测试php是否已经可以正常使用。
apachectl stop 关闭
apachectl start 启动
网页查看 http://192.168.10.110
Success...说明连接数据库成功了
5.在网页根路径部署discuz论坛项目,验证LAMP架构可用性 解压Discuz
把ComsenzDiscuz-DiscuzX-master.zip包拖拽至服务器内,然后进行unzip解压,解压之后出现upload目录,将其重命名并移动到网页根路径
unzip ComsenzDiscuz-DiscuzX-master.zip 解压
cd DiscuzX/
cp -rf upload/ /usr/local/apache/htdocs/discuz 复制目录值网页根路径下
cd /usr/local/apache/htdocs
6.创建discuz项目数据库bbs,便于项目数据的存储
进入mariadb数据命令行界面
mysql -u root -p 密码为root用户 密码123
create database bbs;
7.创建普通用户来管理discuz对应的bbs数据的所有数据
grant all on bbs.* to 'rubbs'@'%' identified by '123456';
把bbs .* 数据库里面 所有的表 给一个'runbbs' all所有的权限 '%使这个用户可以从任何终端登录 identified 主机 密码是1234536
flush privileges; 刷新
quit 退出
8.更改php主配置文件,使其支持短格式选项
可在网页 php 那里找到php的主配置文件
vim /etc/php.ini
211 short_open_tag = On --支持短格式
重启httpd服务
systemctl restart httpd
9.开始部署安装配置 discuz论坛项目
chmod -R 777 /usr/local/apache/htdocs/discuz/ 设置权限
在浏览器输入
http://192.168.10.110/discuz/install/
选择全新安装,点击下一步,
输入数据库ip地址:192.168.10.40,数据库的名称:bbs,数据库用户名:runbbs,管理员的密码:123456
http://192.168.10.110/discuz/admin.php 登录管理员
管理员页面:http://192.168.10.110/discuz/admin.php?,输入admin的密码,登录
6.补充安装GD库
GD库是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片,也可以给图片加水印。
1:首先下载三个包(GD前置库),并分别解压
2:开始编译freetype
tar xvf freetype-2.4.8.tar.bz2
cd freetype-2.4.8/
./configure --prefix=/usr/local/freetype && make && make install
3:编译jpegsrc
tar xvf jpegsrc.v9.tar.gz
cd cd jpeg-9/
CFLAGS="-O3 -fPIC"
./configure --prefix=/usr/local/jpeg && make && make install
4:编译libpng
tar xvf libpng-1.2.56.tar.gz
cd libpng-1.2.56/
CFLAGS="-O3 -fPIC"
./configure --prefix=/usr/local/libpng && make && make install
5:编译成功后进入php源代码包安装路径的GD库路径 进入GD库目录添加模块,不用重新编译php,使用命令phpize
cd /root/php-7.2.5/ext/gd
/usr/local/php/bin/phpize
6.开始编译GD库模块
./configure --with-php-config=/usr/local/php/bin/php-config --with-jpeg-dir=/usr/local/jpeg --with-png-dir=/usr/local/libpng --with-freetype-dir=/usr/local/freetype
make && make install
7.编译完成后修改php主配置文件vim /etc/php.ini
在 ;extension=php_gd2.dll 下面添加一行 extension=gd.so
8.加载GD模块并确认
输入/usr/local/php/bin/php -m
9.重启apache服务然后验证即可。http://192.168.10.110/