安装环境:
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
配置成功后可以看到如下