MySQL前置库接口开发_linux之mysql数据库基础 源码编译安装lamp

本文介绍了MySQL数据库的基础知识,包括其特点、安装方式,并详细讲解了在Linux环境下源码编译安装MySQL、Apache以及PHP(LAMP)的过程。涉及创建删除数据库、表的操作,以及用户管理。此外,还提到了CentOS 7.4上源码编译安装Apache和MariaDB的步骤,包括依赖包的安装、配置文件编辑、环境变量设置等。最后,文章展示了如何部署Discuz论坛项目以验证LAMP架构的可用性。
摘要由CSDN通过智能技术生成

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语句选项  :

-uUSERNAME:用户名默认为root(Linux)

-hHOST:服务器主机默认为localhost

-pPASSWORD:用户的密码(Linux默认为空)

注意:mysql用户帐号由两部分组成:’USERNAME’@’HOST’;其中HOST用于此用户通过哪些远程主机连接mysql服务。

b8cb679d74984d8a1ef4daa6d87d9b3c.png

2.)创建用户

在客户端输入mysql -u root -p123456

grant all on bbs*.* to 'runbbs'@'%' identified by '123456';创建用户

把bbs.*数据库里面 所有的表  给一个'root'all所有的权限'%使这个用户可以从任何终端登录identified主机    密码是1234536

387bbd30c3de706a8224ff14254833e2.png

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 排序

c0e1aea5f676b5a23ecbf9d9ecb4aa98.png

198c5a59189db47be2a1c5fe1e9a21bc.png

select * from user \G;

33a8506b21d6f003fa9ff352d7e19348.png

DESC(查询表的结构相关属性)

desc user;描述表结构

desc mysql.user;描述 什么什么库下面  .  什么什么表

abb5e9491d83d8fe2a117d73adb09242.png

绝对路径:DATABASE.TABLE

select user,password from mysql.user;

从mysql.这个库下的user表;查询出user,password这两个字段

a508284db621da9d066c09a9f00502d6.png

3.mysql语句的操作语句分为三类

SQL语句分为三类

DDL:数据定义语言CREATE创建,DROP删除,ALTER修改(针对的组件基本为数据库  数据表...... )

DML:数据操作语言INSERT插入,DELETE删除,UPDATE更新,SELECT查询

DCL:数据控制语言GRANT赋予权限,REVOKE撤销权限(授权和撤销授权).....

命令帮助(查看帮助文档)

HELP  KEYWORD(命令关键字)helpshow

da45c012af94bbc2e455d90b61a3951a.png

23a0a8d958d1b6a4fab457390027a226.png

?  (相当于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;--查看数据库

64f231ee661fd6c095518a8f0ed92328.png

5.删除数据库drop database库;(慎用)

格式:DROP DATABASE [IF EXISTS] ‘DB_NAME’;(非常危险,生产环境不建议使用)’

[IF EXISTS]如果存在就删除,不存在就不删除

drop databaseuuuu;-删除uuuu库

show databases;-查看所有数据库

0b7076be3a84ecf60ea9546dfe1ded93.png

6.创建表:create table 表kkk (数据类型,修饰符)

格式:CREATE TABLE 表名(字段1 数据类型 修饰符,字段2 数据类型 修饰符......) [ENGINE=’]

use uuuuu;进入数据库

create table kkk ( id int(5)  primary key,name char(16) );创建表 第一个为主键

desc kkk;

56df210b960c2e813ee7c67cba0fea65.png

5249d3f0677069ab9363d43ac1ca5478.png

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 tablekkk;-删除kkk则这个表

show tables;--查看表

092f9edc6531741b27bd2f278ce784da.png

1.mysql 增删减改 插入数据操作快捷键操作

快捷键操作

ctrl+u:光标删除至最左侧

ctrl+k:光标删除至最右侧侧

ctrl+l:清屏

exit:退出sql接口(或者quit   或者\q)

1.增:insert into增加tbl表的内容,

格式:insert into tbltable_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;---查看表内容

b223990b50e05573d682c0aecabbc46b.png

2.删delete from表名tblwhere指定的属性id =3;

delete fromtable_name [WHERE Clause];

[WHERE Clause];-删除指定的某个属性

delete from tbl where id =3;

6e37a9f5672da5749851c2936f484d18.png

3.改;update表tblset name='kwz'改之后where name='kkk1';改之前的     kwz注意字符串 ‘  ’ 括起来

格式:update加表名字SETfield1=’new-value1’,‘field2=new-value2’

Where  field3=’xxxxx’;field3xxxx  改为 field1new... 和2

update tbl set name='kwz' where name='kkk1';kkk1改为kwz

select * from tbl;--查看表内容

628434f4d9b3f74fb6513959fe8bc162.png

4.查: select表标题idfrom那个表tblwhere查看什么内容name='kwz';

格式:SELECT field1, field2,...fieldN FROM table_name1, table_name2...

[WHERE condition1 [AND [OR]] condition2.....

SELECTfield1, field2,...fieldN要查看的字段或者属性可以查看多个属性,逗号隔开

FROMtable_name1, table_name2.来自那个表,  查看多个表逗号隔开,

[WHEREcondition1指定查看那条记录

[AND [OR]]condition2.....与表示两个条件同时生效或表示一个即可

select id from tbl where name='kwz';从tbl表  查看 叫kwz的id

selectid,namefrom 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需要cmakencurses-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

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

或者解压安装包

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

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

fa621a6553b728e49ee8b5945847ef5f.png

b48a279a498b5ca6e81722f7ff34b524.png

5d0a47f8c994efa3034dccdaea2decdc.png

67a9b29a94b33ba2ab1315647c4be267.png

4.添加PATH变量

vim/etc/profile

添加如下字段

export PATH=$PATH:/usr/local/apache/bin

b73da6e3d1c1fa821d482ba030de3841.png

或者

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--查看

显示如下字段证明可以正常工作

afc7919ee6ac1e260490ba6c87227c51.png

e731823dd37162654889c0de5ae22a11.png

到此为止httpd编译基本完成。

8.如果想要更改运行账号和所属组可以通过修改配置文件的user和group字段为apache

useradd -r -s /sbin/nologin apache

chown -R apache:apache /usr/local/apache

11a4dde181b3981bd8e1db1607fcf172.png

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

39c9e7fc97f45798f5b9e0d8c8738e63.png

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---增加可执行权限

00b802ae45414147b3f3312ee34f21ca.png

vim /etc/my.cnf增加配置选项三个datadirinnodbskip

datadir = /mydata#指定数据库路径,不然无法启动mysql 自己定义

innodb_file_per_table = on#设置后当创建数据库的表的时候表文件都会分离开,方便复制表,不开启创建的表都在一个文件

skip_name_resolve = on#跳过名称反解,Mysql每次使用客户端链接时都会把ip地址反解成主机名

fe9666e4d62eb7cf7a5b6504929ee140.png

5.添加环境变量vim /etc/profile(优化)

echo '/usr/local/mysql/bin/' >> /etc/profile-把这个添加到环境变量里

vim /etc/profile---编辑环境变量   写入下面内容

exportPATH=$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

21a1567f4af6fc4e148032b6c9d3f2b0.png

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/--初始化

87c4031e2bf805cd413739bf6ef99a25.png

注释

/usr/local/mysql/scripts/mysql_install_db脚本

--user=mysql用户

--basedir=/usr/local/mysql安装数据库

--datadir=/mydata/表存放路径

启动数据库

service mysqld start

b1fe4e3015486581dd3b28c01dec573e.png

netstat   -antulp | grep :3306--端口

ps aux | grep mysqld--进程

b79f85c14e1c3a4e2158d4bb702e7da1.png

7.安全初始化,这里会要求设置密码,(删除空用户 设置密码)

/usr/local/mysql/bin/mysql_secure_installation

dc531b837048a8b3f7cd37cce4630bed.png

完成下面内容填写

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并且解压

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-dirpng

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

5d8dd5264436995d3156aefbfe44786e.png

3.vim /etc/httpd24/httpd.conf定位至260左右修改为:

DirectoryIndex  index.php  index.html-先读取php,在读取html

3cda56d06ce8732039dfb14c682216f8.png

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;--刷新

371a234e04503a931d7638bed4346f3d.png

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();

?>

64fcea55d605971cfd54fa5b6fab62a3.png

重新启动httpd,或让其重新载入配置文件测试php是否已经可以正常使用。

apachectl stop关闭

apachectl start启动

网页查看  http://192.168.10.110

8f2d2152cf8e6da6d0d3955ddbffeaf0.png

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;

be7f5804fc7230c5fff45deb18ea994c.png

7.创建普通用户来管理discuz对应的bbs数据的所有数据

grant all on bbs.* to 'rubbs'@'%' identified by '123456';

把bbs.*数据库里面 所有的表  给一个'runbbs'all所有的权限'%使这个用户可以从任何终端登录identified主机    密码是1234536

flush privileges;刷新

quit退出

8d1b8adda337e5d36519a9b1075019b9.png

e86abfe4d940b40b7ba2bacf6eff9af0.png

8.更改php主配置文件,使其支持短格式选项

可在网页 php  那里找到php的主配置文件

d7cf451b4671731327d5fafbabe4612a.png

vim /etc/php.ini

211 short_open_tag = On--支持短格式

a5a4d3172ac55c2469236bebf22b373a.png

重启httpd服务

systemctl restart httpd

9.开始部署安装配置 discuz论坛项目

chmod -R 777  /usr/local/apache/htdocs/discuz/设置权限

在浏览器输入

http://192.168.10.110/discuz/install/

92304debbc522231df7cdfe7864b76c7.png

9f957a08e802526e37710a7b8bb92bd9.png

选择全新安装,点击下一步,

输入数据库ip地址:192.168.10.40,数据库的名称:bbs,数据库用户名:runbbs,管理员的密码:123456

30caee48e8e8b4ef77c5cc05aab185ea.png

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

02d5ae05e5b3d4797982bc8f1cb57b4d.png

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

be65146aca05c952da4ddca639732d8c.png

8.加载GD模块并确认

输入/usr/local/php/bin/php -m

31acde6007230f8c614ed975f37823c6.png

9.重启apache服务然后验证即可。http://192.168.10.110/

5e5ba72576b7ea5ac0b0c778c3a9f622.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值