centos 7.4源码安装mysql5.5.20

Posted wutao1935

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos 7.4源码安装mysql5.5.20相关的知识,希望对你有一定的参考价值。

安装环境:

centos 7.4 + mysql 5.5.20

 

步骤:

(1)     源码安装MYSQL5.5.20方法,通过cmake、make、make install三个步骤实现。

安装mysql需要的包:yum install -y cmake make gcc gcc-c++ wget ncurses-devel cmake make perl ncurses-devel openssl-devel bison-devel libaio libaio-devel

PCRE是一个Perl库,包括 perl 兼容的正则表达式库。PCRE是一个轻量级的函数库,比Boost之类的正则表达式库小得多。

CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多。CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt文件转化为make所需要的makefile文件,最后用make命令编译源码生成可执行程序或共享库(so(shared object))。

ncurses是字符终端下屏幕控制的基本库,mysql登录时使用到了相应的功能。

libaio是Linux下的一个异步非阻塞接口,它提供了以异步非阻塞方式来读写文件的方式,读写效率比较高。libaio的读写过程简单说来就是你发出一个读写请求,然后你可以开始做其他事情,当读写过程结束时libaio会通知你你的这次请求已经完成(而select模型是告诉你读写已经就绪)

Bison是一种通用的解析器生成器,它将一个LALR(1)上下文无关文法的语法描述转换成一个C程序来解析该语法。一旦您精通Bison,您就可以使用它来开发广泛的语言解析器,从简单的桌面计算器到复杂的编程语言。

(2)  安装:

cmake  .  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql55/ \\
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \\
-DMYSQL_DATADIR=/data/mysql \\
-DSYSCONFDIR=/etc \\
-DMYSQL_USER=mysql \\
-DMYSQL_TCP_PORT=3306 \\
-DWITH_XTRADB_STORAGE_ENGINE=1 \\
-DWITH_INNOBASE_STORAGE_ENGINE=1 \\
-DWITH_PARTITION_STORAGE_ENGINE=1 \\
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \\
-DWITH_MYISAM_STORAGE_ENGINE=1 \\
-DWITH_READLINE=1 \\
-DENABLED_LOCAL_INFILE=1 \\
-DWITH_EXTRA_CHARSETS=1 \\
-DDEFAULT_CHARSET=utf8 \\
-DDEFAULT_COLLATION=utf8_general_ci \\
-DEXTRA_CHARSETS=all \\
-DWITH_BIG_TABLES=1 \\
-DWITH_DEBUG=0

 

make && make install

  cd /usr/local/mysql55/ 
  \\cp -f support-files/my-large.cnf   /etc/my.cnf
  \\cp -f support-files/mysql.server  /etc/init.d/mysqld

 

创建mysql datadir:

  mkdir -p  /data/mysql


  添加开机自启动:

  chkconfig --add mysqld 
  chkconfig --level 35 mysqld on

创建mysql 用户,组:

 groupadd mysql
 useradd -s /sbin/nologin -m -g mysql mysql

   /usr/local/mysql55/scripts/mysql_install_db  --user=mysql  --datadir=/data/mysql  --basedir=/usr/local/mysql55/

 

  chown -R mysql.mysql  /data/mysql/     #改变目录的用户和用户组
  ln -s  /usr/local/mysql55/bin/*  /usr/bin/

 

 注意:datadir的准确性

 

第二部分:

mysql启动:

1.开启MySQL服务

/etc/init.d/mysqld start

service mysqld start

systemctl start mysqld

2.检测端口是否运行

lsof -i :3306

netstat -lntup |grep 3306

ss -antp|grep 3306

3. 设置mysql的密码:

mysqladmin -u root password "NEWPASSWORD"

 4. 修改mysql的密码:

mysqladmin -u [username]-p[oldpassword] password [newpassword]

username:   用户名

oldpassword:旧密码

newpassword:新密码

注意:-p[oldpassword]中间没有空格

输入命令时也可以忽略旧密码,然后会提示你输入密码,则输入旧密码。

假设原密码为ab12,改为abc345,则命令为:

mysqladmin -u root -pab12  password abc345

或者

use mysql;

update user set passowrd = PASSWORD(\'newpassword\') where user = \'root\';

flush privileges;

 

5.MySQL密码丢了,请找回?

mysqld_safe --skip-grant-tables & #启动数据库服务

mysql -uroot -ppassowrd -e "use mysql;update user set passowrd = PASSWORD(\'newpassword\') where user = \'root\';flush privileges;"

 

mysql远程登录:

1.登陆权限简介:

mysql用户设置当中多了一个主机选项,意思是允许这个用户使用什么主机登陆。

一般常见的主机选项为:%,localhost,IP地址

%:任意主机可以登陆

localhost:仅本机可以登陆

IP地址:指定的IP地址可以登陆

2.修改root的登陆权限

1.登陆mysql服务器

mysql -u root -p

2.进入数据库mysql

use mysql;

3.修改登陆权限

update db set host = \'%\' where user = \'用户名\';

新增本机登录用户wutao

grant select,insert,update,delete on *.* to wutao@localhost Identified by "12345678";

GRANT ALL PRIVILEGES ON *.* TO \'USERNAME\'@\'%\' IDENTIFIED BY \'PASSWORD\' WITH GRANT OPTION;

grant all privileges on *.* to \'wutao\'@\'%\' identified by "12345678";

4.刷新权限列表

flush privileges;

 

二;源码安装Apache 2.4.29

 

(1)  Apache WEB安装,先安装apr、apr-utils等基础库包。

 

yum install apr-devel apr-util-devel  gcc c ncurses-devel cmake libaio bison gcc-c++  git pcre* -y

PCRE是一个Perl库,包括 perl 兼容的正则表达式库。PCRE是一个轻量级的函数库,比Boost之类的正则表达式库小得多。

CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多。CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt文件转化为make所需要的makefile文件,最后用make命令编译源码生成可执行程序或共享库(so(shared object))。

ncurses是字符终端下屏幕控制的基本库,mysql登录时使用到了相应的功能。

libaio是Linux下的一个异步非阻塞接口,它提供了以异步非阻塞方式来读写文件的方式,读写效率比较高。libaio的读写过程简单说来就是你发出一个读写请求,然后你可以开始做其他事情,当读写过程结束时libaio会通知你你的这次请求已经完成(而select模型是告诉你读写已经就绪)

Bison是一种通用的解析器生成器,它将一个LALR(1)上下文无关文法的语法描述转换成一个C程序来解析该语法。一旦您精通Bison,您就可以使用它来开发广泛的语言解析器,从简单的桌面计算器到复杂的编程语言。

Git :快速、可缩放的分布式版本控制系统

 

安装pcre:

cd  /usr/src

wget  https://sourceforge.net/projects/pcre/files/pcre/8.42/pcre-8.42.tar.gz

tar xzf  pcre-8.42.tar.gz

cd pcre-8.42

./configure --prefix=/usr/local/pcre

#make

#make install 

 

安装Apache:

wget http://archive.apache.org/dist/httpd/httpd-2.4.29.tar.gz

tar  xzf  httpd-2.4.29.tar.gz

cd httpd-2.4.29

./configure --prefix=/usr/local/apache --enable-so --enable-rewrite  --with-pcre=/usr/local/pcre

make  && make install

setenforce 0

systemctl stop firewalld

iptables -F

echo "ServerName localhsot:80" >> /usr/local/apache/conf/httpd.conf

/usr/local/apache/bin/apachectl restart

 

 

三。安装php5.3.28:

 

wget http://mirrors.sohu.com/php/php-5.3.28.tar.bz2

 

tar jxf  php-5.3.28.tar.bz2

cd php-5.3.28 ;

vim  /usr/src/php-5.3.28/Zend/zend_language_parser.h       修改317行,改为(void *compiler_globals)

./configure过程很顺利,在make环节发生错误。报错:/root/php-5.3.28/Zend/zend_language_parser.h:317: 错误:与‘zendparse’类型冲突。

下一句给了提示,在zend_globals_macros.h:35中‘zendparse’类型如此:

CG 的含义就是 compiler_globals ,Zend编译器相关的全局变量;

EG 的含义就是 executor_globals,Zend执行器相关的全局变量;

yum install libxml2 libxml2-devel -y

libxml2 是个跨平台的C库,用于操作xml文件,解析xml文件

xml语言:可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。

./configure --prefix=/usr/local/php5  --with-mysql=mysqlnd   --with-mysqli=mysqlnd   --with-pdo-mysql=mysqlnd  --with-apxs2=/usr/local/apache/bin/apxs

make -j4 && make  -j4  install   (j4 是指4核CPU同时编译文件)

 

四.整合PHP和Apache资源:

(1)  Apache+PHP源码整合

为了能让Apache发布PHP页面,需要将PHP安装完成后的libphp5.so模块与Apache进行整合,vim httpd.conf编辑配置文件,在对应模块加入如下代码

AddType         application/x-httpd-php  .php

这个是让.txt后缀的文件可执行PHP,如果.php文件中包括PHP代码,则该文件和.php后缀的文件完全 一样,都成为动态文件,在服务器端处理。

如果在httpd.conf中不设置此语句,则以字符的形式直接读取.php文件中的内容,不作PHP处理。

DirectoryIndex     index.php index.html index.htm

 

五.测试

 

创建PHP测试页面,在/usr/local/apache/htdocs目录下创建index.php测试页面,执行如下命令自动创建:

 

vim  /usr/local/apache/htdocs/index.php

<?php

phpinfo();

?>

 

 

 

/usr/local/apache/bin/apachectl  restart

重新启动Apache服务,浏览器输入 Apache WEB的IP访问,如图12-4所示,即代表LAMP源码环境整合成功。

Apache+PHP测试页面

 

(1)  Discuz PHP论坛安装

LAMP源码整合完毕之后,Dicuz官网下载Discuz开源PHP软件包,将软件包解压并发布在Apache Htdocs发布目录,代码如下:

cd     /usr/src ;

wget  http://download.comsenz.com/DiscuzX/3.1/Discuz_X3.1_SC_UTF8.zip

unzip  Discuz_X3.1_SC_UTF8.zip -d  /usr/local/apache/htdocs/

cd    /usr/local/apache/htdocs/

mv upload/* .

chmod 757  -R  data/  uc_server/  config/  uc_client/

 

MYSQL数据库命令行中创建PHP连接MYSQL的用户及密码,命令如下:

create database discuz charset=utf8;

grant all on discuz.* to root@\'localhost\' identified by "123456";

 

数据库服务器地址填写本机的地址

数据库名字填写在主数据库创建的discuz

用户名填写数据库用户名root

数据库密码123456

 

 

 

配置成功后可以看到如下

 

 

 

 

 

 

 

以上是关于centos 7.4源码安装mysql5.5.20的主要内容,如果未能解决你的问题,请参考以下文章

CentOS 7.4 使用源码包编译安装MySQL 5.7.20

centos 7.4 源码安装最新版本的lamp架构及搭建phpMyadmin

CentOS 7.4下源码安装 Apache HTTP Server(httpd-2.4.35)

Linux精华篇—CentOS 7.4下源码编译构建LAMP架构

Linux精华篇—CentOS 7.4下源码编译构建LNMP架构

CentOS 7.4搭建Apache网站服务