linux之mysql数据库基础 源码编译安装lamp

mysql数据库基础 源码编译安装lamp

1:属于中小型关系型数据库,流行广泛,企业应用面广,开源免费。

2:适用于多种平台  linux windows unix ......

3:安装方式:

平台内软件安装  

二进制格式的程序包安装  

源代码编译安装(linux系统)

4:SQL引擎   键入SQL语句进行解释处理

 

1.定义 构成

数据:

描述事物符号记录。(包括数字、文字、图形、图像、声音、档案记录等)以记录形式统一的格式进行存储。

2.数据库的构成:

数据:

表:将不同的记录(数据)组织在一起,就形成了表;用于存储数据。(表是存储数据的唯一单位)

库:表的集合体,是存储数据的仓库,以一定的组织方式存储的互相有关的数据。

--->表--->数据(行、列)  

 

3.数据库管理系统(DBMS)关系型数据库管理系统

将二维关系数据结构模型规范得以实现,我们称为数据库管理系统DBMS

数据库管理系统的分类

                      DBMS:数据库管理系统

RDBMS:关系型数据库管理系统

NOSQL:非关系型数据库

NEWSQL:新型数据库

 

关系型数据库管理系统(RDBMS)

包括  开源解决方案: mysql、mariadbPercona-server、pgsql  .....

      商业解决方案: ORACLEDB2、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

<?php

        phpinfo();

?>

<?php

$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/

 

 

 

posted @ 2020-08-01 15:23  浅唱I  阅读(577)  评论(0编辑  收藏  举报