linux(一)centos编译安装PHP,nginx,mysql,mariadb

1 篇文章 0 订阅
1 篇文章 0 订阅

编译安装php,nginx,mysql,mariadb。

一:编译安装PHP7.4

我的服务器是阿里云的centos7.8

1:下载PHP源码包

一般我都是从官方网站下载:https://php.net

1.png

当然,我是直接在服务器上下载的:

mkdir -p /usr/local/download
cd /usr/local/download
wget https://www.php.net/distributions/php-7.4.11.tar.gz

2:为服务器安装编译环境

我使用的服务器是纯净的环境,没有编译的环境,因此需要安装:

yum -y install gcc gcc-c++ autoconf automake build-essential zlib zlib-devel openssl openssl-devel pcre pcre-devel

3:安装PHP7.4所需要的的编译环境

yum install -y openssl-devel libxml2-devel bzip2-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel recode-devel libicu-devel libzip-devel sqlite-devel oniguruma-devel

4:编译安装php7.4

(1):解压刚刚下载的源码包

tar -zxvf php-7.4.11.tar.gz
cd php-7.4.11
 

(2):编译(指定安装目录)并安装php-fpm

./configure --prefix=/usr/local/php --with-mysql --with-mysqli --with-pdo_mysql --with-iconv-dir --with-zlib --with-libxml-dir --enable-xml --with-curl
 --enable-fpm
 --enable-mbstring --with-gd --with-openssl --with-mhash --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-bcmath

2.png

如上图所示,编译成功

(3):安装

make&&make install

5:简化PHP执行命令

上一步操作中我们已经将PHP安装成功。

在服务器端执行PHP文件格式是这个样子的:

/usr/local/php/bin/php index.php

但是我们使用yum源安装的PHP,在服务器上可以直接使用php命令来执行:

php index.php

在当前登录用户(我是root)家目录下的.bash_profile中添加如下内容:

vim /root/.bash_profile

添加内容:

alias php=/usr/local/php/bin/php
alias phpfpm=/usr/local/php/sbin/php-fpm

修改之后文件内容:

# .bash_profile
 
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
 
# User specific environment and startup programs
 
PATH=$PATH:$HOME/bin
 
export PATH
alias php=/usr/local/php/bin/php
alias phpfpm=/usr/local/php/sbin/php-fpm

重载一下文件:

source /root/.bash_profile

或者创建软连接

ln -s /usr/local/php/bin/php /usr/bin/php74
ln -s /usr/local/php/sbin/php-fpm /usr/bin/php-fpm74

理论上就可以使用php命令来执行PHP文件了

3.png

6:启动php-fpm报错解决方案

这里只记录在我安装的时候遇到的错误。

(1):找不到php-fpm.conf文件

[19-Apr-2018 16:02:08] ERROR: failed to open configuration file '/usr/local/php/etc/php-fpm.conf': No such file or directory (2)
 [19-Apr-2018 16:02:08] ERROR: failed to load configuration file '/usr/local/php/etc/php-fpm.conf'
 [19-Apr-2018 16:02:08] ERROR: FPM initialization failed

错误信息说是找不到php-fpm.conf

解决方案:

到php的配置目录

cd /usr/local/php/etc

有一个php-fpm.conf.default的文件,cp复制

cp php-fpm.conf.default php-fpm.conf

编辑 php-fpm.conf
找到以下配置项, 配置如下

pid = /usr/local/php/var/run/php-fpm.pid

再次运行

/usr/local/php/sbin/php-fpm

进入下一个报错、

(2):找不到www.conf配置文件

[root@iZuf60ynur81p6k0ysvtneZ etc]# /usr/local/php/sbin/php-fpm
[13-Oct-2020 18:03:57] WARNING: Nothing matches the include pattern '/usr/local/php/etc/php-fpm.d/*.conf' from /usr/local/php/etc/php-fpm.conf at line 145.
[13-Oct-2020 18:03:57] ERROR: No pool defined. at least one pool section must be specified in config file
[13-Oct-2020 18:03:57] ERROR: failed to post process the configuration
[13-Oct-2020 18:03:57] ERROR: FPM initialization failed

解决方案:

进入php安装目录:

/usr/local/php/etc/php-fpm.d

当前目录下有一个www.conf.default文件

cp 
www.conf.default
 
www.conf

再次执行

/usr/local/php/sbin/php-fpm

我的php-fpm便启动成功。

7:php.ini文件

Php编译安装成功之后,是没有php.ini文件的,需要我们从源码包中复制过去。

(1):查询php.ini文件位置

php -i | grep php.ini
[root@iZuf60ynur81p6k0ysvtneZ /]# php -i | grep php.ini
Configuration File (php.ini) Path => /usr/local/php/lib
 

Php.ini文件存放目录在/usr/local/php/lib中

(2):获取php.ini文件

找到了php.ini文件的存放位置,那么php.ini文件在哪获取呢?

进入我们的源码包,我们可以看到:

4.png

使用cp命令,将文件复制到指定位置并重命名php.ini

cp /usr/local/download/php-7.4.11/php.ini-development /usr/local/php/lib/php.ini

8:安装php扩展

敲黑板,敲黑板,安装扩展这个很重要。

我们使用php -m 命令可以查看PHP默认为我们安装了那些扩展:

[root@iZuf60ynur81p6k0ysvtneZ /]# php -m
[PHP Modules]
Core
ctype
date
dom
fileinfo
filter
hash
iconv
json
libxml
pcre
PDO
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
 
[Zend Modules]

其实,在PHP源码包中,为我们提供了部分的PHP的扩展源码包,这里没有的需要去PHP官网下载。在根目录下的ext目录中,如下图所示:

5.png

所以,我们如果需要安装相关的拓展,不需要去别的地方找,源码包啥都给你提供了。

下面,记录一下,我安装gd库扩展的过程:

(1):进入源码包的gd库目录:

cd /usr/local/download/php-7.4.11/ext/gd  #这里是我的目录,需要改成你自己的目录

(2): 生成configure

/usr/local/php/bin/phpize  
#这里是我的目录,需要改成你自己的目录

如下图所示:注意文件的生成时间

6.png

(3):执行编译

./configure --with-php-config=/usr/local/php/bin/php-config --with-jpeg-dir=/usr/local/jpeg/

有的时候会出现如下警告:

creating libtool
appending configuration tag "CXX" to libtool
configure: patching config.h.in
configure: creating ./config.status
config.status: creating config.h
 

不需要理会他

(4):安装

make&&make install

安装成功之后会返回文件安装位置:

Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/

(5):配置php.ini文件,使安装生效

在php.ini中添加

extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/gd.so

修改完成之后

查看php-fpm的进程

ps -aux | grep php-fpm
[root@iZuf60ynur81p6k0ysvtneZ lib]# ps -aux|grep php-fpm
root     14783  0.0  0.3 212116  6244 ?        Ss   Oct13   0:02 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
nobody   14784  0.0  0.3 212116  7448 ?        S    Oct13   0:00 php-fpm: pool www
nobody   14785  0.0  0.3 212116  7444 ?        S    Oct13   0:00 php-fpm: pool www
root     18338  0.0  0.0 112808   968 pts/0    R+   10:01   0:00 grep --color=auto php-fpm

终止php-fpm进程:

Kill 14783

重启php-fpm

/usr/local/php/sbin/php-fpm

使用php -m查看安装模块:

[root@iZuf60ynur81p6k0ysvtneZ lib]# php -m
[PHP Modules]
Core
ctype
date
dom
fileinfo
filter
gd
hash
iconv
json
libxml
pcre
PDO
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
 
[Zend Modules]

我们发现gd库安装成功。

9:查看已安装的PHP扩展文件

已安装的扩展目录在:/usr/local/php/include/php/ext

7.png

10:设置开机启动

确保rc.local 文件有执行权限,否则,开机启动不生效

vim  /etc/rc.d/rc.local

添加如下内容:

/usr/local/php/sbin/php-fpm

二:编译安装nginx

1:下载nginx源码包

cd /usr/local/download
wget http://nginx.org/download/nginx-1.18.0.tar.gz

2:解压文件

tar -zxvf nginx-1.18.0.tar.gz

3:进入解压后的目录,编译

cd nginx-1.18.0
./configure --prefix=/usr/local/nginx

8.png

编译成功。

4:安装

make&&make install

5:访问

在浏览器端输入IP

出现如下图所示:即安装成功

4bc913730fbfbf973ee117be1c80310e.png

6:简化nginx操作命令

默认操作nginx命令:

/usr/local/nginx/sbin/nginx

比较长,用着不太方便,简化方式其实和php是一样的:

vim /root/.bash_profile

添加内容:

alias nginx=/usr/local/nginx/sbin/nginx

修改完成,重载一下文件:

source /root/.bash_profile

或者创建软连接

ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

7:配置nginx支持php-fpm

安装成功之后,nginx的配置文件,在安装目录(/usr/local/nginx)下的conf目录下的nginx.conf中。

Php-fpm在安装的时候已经配置过了,这里不再赘述

这里我就不多介绍了,下面放上我是用的配置文件,关键的位置都有中文注释

#user  nobody;
worker_processes  1;
 
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
 
#pid        logs/nginx.pid;
 
events {
    worker_connections  1024;
}
 
http {
    include       mime.types;
    default_type  application/octet-stream;
 
    sendfile        on;
    #tcp_nopush     on;
 
    #keepalive_timeout  0;
    keepalive_timeout  65;
 
    #gzip  on;
 
    server {
        listen       80;
        server_name  localhost;
 
        #charset koi8-r;
 
        #access_log  logs/host.access.log  main;
 
        location / {
            # 指定网站根目录
            root   /usr/local/nginx/html;
            # 指定支持语言
            index  index.php index.html index.htm;
        }
 
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
 
        # 添加对PHP的支持
        location ~ \.php$ {
            root           /usr/local/nginx/html;            #网站根目录
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            # 默认php-fpm配置,使用这个配置访问PHP文件时可能会出现file not find 错误
            # fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            # 修改之后的 php-fpm 配置。
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
 
        # 这里存放网站域名配置文件(一个域名配置一个文件,方便管理)
        include /usr/local/nginx/vhost/*.conf;
    }
}

修改完成之后,重启nginx

# 查询nginx进程
ps -aux | grep nginx
root     15671  0.0  0.0  20564   608 ?        Ss   13:37   0:00 nginx: master process /usr/local/nginx/sbin/nginx
nobody   15672  0.0  0.0  21000  1556 ?        S    13:37   0:00 nginx: worker process
root     15690  0.0  0.0 112808   964 pts/0    R+   13:39   0:00 grep --color=auto nginx
# 停止进程
kill 15671
# 重新加载配置文件
nginx -s reopen
#重启nginx
nginx -s reload

在根目录下创建index.php

<?php
phpinfo();

在浏览器中访问你的ip,如下图所示:

10.png

8:设置开机启动

确保rc.local 文件有执行权限,否则,开机启动不生效

vim /etc/rc.d/rc.local

添加如下内容:

/usr/local/nginx/sbin/nginx

9:报错解决

停止nginx:

nginx -s stop
nginx -s reload

报错:

nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)

解决方式:执行命令:

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf # 注意,这里需要将你nginx安装的路径替换一下

三:安装mysql8.0

1:检查编译库

Mysql8.0要求gcc的版本在4.8以上,版本低于4.8,需要自行升级:

(1):

wget ftp://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.gz

(2):

tar xf gcc-4.8.2.tar.gz

(3):

cd  gcc-4.8.2

(4):载编译需要的依赖包:

./contrib/download_prerequisites

(5):

./configure --prefix=/usr/local/gcc-4.8.2/   --enable-bootstrap --enable-threads=posix --enable-languages=c,c++,objc,obj-c++

(6):

make -j4

(7):

make install

说明:make的时间会很长。

安装完后,还需要将原来的gcc环境用新版本的gcc替换掉,否则mysql在安装时还是用的原来的gcc,

依次执行:

mv /usr/bin/gcc /usr/bin/gcc447
mv /usr/bin/g++ /usr/bin/g++447
mv /usr/bin/c++ /usr/bin/c++447
mv /usr/bin/cc /usr/bin/cc447
ln -s /usr/local/gcc-4.8.2/bin/gcc /usr/bin/gcc
ln -s /usr/local/gcc-4.8.2/bin/g++ /usr/bin/g++
ln -s /usr/local/gcc-4.8.2/bin/c++ /usr/bin/c++
ln -s /usr/local/gcc-4.8.2/bin/gcc /usr/bin/cc
mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bak
ln -s /usr/local/gcc-4.8.2/lib64/libstdc++.so.6.0.18 /usr/lib64/libstdc++.so.6

接着,安装boost库:

wget -c http://sourceforge.net/projects/boost/files/boost/1.60.0/boost_1_60_0.tar.bz2  --no-check-certificate
tar xf boost_1_60_0.tar.bz2\?r\=\&ts\=1479114685\&use_mirror\=ncu
cd boost_1_60_0
./bootstrap.sh
./b2 stage threading=multi link=shared
./b2 install threading=multi link=shared

2:下载mysql源码包

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.21-el7-x86_64.tar.gz

3:准备安装mysql

(1)、 卸载系统自带的mariadb*

rpm -qa|grep mariadb

查找出结果:mariadb-libs-5.5.60-1.el7_5.x86_64

rpm -e --nodeps  mariadb-libs-5.5.60-1.el7_5.x86_64   #删除此或者使用yum命令删除
yum -y remove mariadb* boost-*

(2):创建mysql用户及用户组

cat /etc/group | grep mysql  # 查看是否有mysql用户组
cat /etc/passwd | grep mysql # 查看是否有mysql密码
useradd -M -s /sbin/nologin mysql   //创建名为mysq的用户并且没有登录权限 (不指定 -g默认创建了同名mysql的用户组)

(3):删除系统原有的my.cnf(如果存在)

rm -f /etc/my.cnf
rpm -qa | grep mysql

4:安装mysql

我下载的版本是免编译版本,因此和二进制编译安装包略有不同。

解压到 /usr/local/mysql/ (即安装目录)

cd /mydata
mkdir -p /usr/local/mysql

tar -zxvf mysql-8.0.21-el7-x86_64.tar.gz //解压
mv /mydata/ mysql-8.0.21-el7-x86_64.tar.gz/* /usr/local/mysql/ //移动到安装目录

创建如下目录

mkdir /usr/local/mysql/database   (数据库目录)
mkdir /usr/local/mysql/log   (数据库日志相关目录)
mkdir /usr/local/mysql/log/binlog   (二进制日志目录)
mkdir /usr/local/mysql/log/tmp   (临时文件存放目录)
touch /usr/local/mysql/log/mysqld.log   (安装日志文档)
chmod -R 777 /usr/local/mysql/log/

改变mysql的属组

chown -R mysql:mysql /usr/local/mysql/

或者下面两句

chown -R mysql /usr/local/mysql/
chgrp -R mysql /usr/local/mysql/

执行安装

cd /usr/local/mysql 
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/database/  --log-error=/usr/local/mysql/log/mysqld.log

此版本采用mysql_install_db 进行安装,不再使用cmake 编译安装

/usr/local/mysql/bin/mysql_install_db     # 安装命令 
--initialize                                             # 生成默认密码    
--user=mysql                                             # 指定mysql用户 
--basedir=/usr/local/mysql/                       # 安装目录 
--datadir=/usr/local/mysql/database/                # 数据库目录 
--log-error=/usr/local/mysql/log/mysqld.log     # 指定日志文件,安装过程中数据库生成的初始密码就会保存到此文件中,如果不指定,生成的初始密码就是现实到安装屏幕上(建议指定)出现:
                                            # 执行上面的命令后,什么都没有出现,是因为我们指定了 /usr/local/mysql/data/mysqld.log,安装过程都记得到此文件了,因此就不在前台显示了。

查看mysqld.log文件:

cat /usr/local/mysql/log/mysqld.log
[root@iZuf60ynur81p6k0ysvtneZ mysql]# cat /usr/local/mysql/log/mysqld.log
2020-10-14T05:41:57.620731Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
2020-10-14T05:41:57.620859Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.21) initializing of server in progress as process 1352
2020-10-14T05:41:57.829126Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2020-10-14T05:42:00.795030Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2020-10-14T05:42:03.388874Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: SbBtsQla%0oY

日志显示我们安装成功:初始密码为:SbBtsQla%0oY

5:创建mysql配置文件my.cnf

vim /etc/my.cnf
 
# ==============粘贴内容 start ===============
[client]
port=3306
default-character-set=utf8
 
[mysqld]
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/database
user=mysql
default-storage-engine=INNODB
character-set-server=utf8
 
[mysqld_safe]
log-error=/usr/local/mysql/log/mysqld.log
 
# ============ 粘贴内容  end ============

设置此文件可执行权限

# chmod 644 /etc/my.cnf

6:启动并添加到环境变量

(1):启动mysql

#创建驱动文件
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
#修改变量
# vim /etc/init.d/mysqld

大约46行 ,给以下两个变量赋值

basedir=/usr/local/mysql
datadir=/usr/local/mysql/database
 

chmod +x /etc/init.d/mysqld
service mysqld start                //启动

(2):添加到环境变量

# 添加到环境变量

vim /etc/profile
  在此文件最后添加如下内容:

# MYSQL
export PATH="$PATH:/usr/local/mysql/bin"
 

// 立即生效

source  /etc/profile
// 输出环境变量

echo $PATH
 

7:更改默认密码

//修改密码



[root@qinser mydata]# mysql -u root -p
Enter password:     <------这里输入上面的初始密码(默认密码在安装的时候我们已经从mysqld.log中获取)
 
mysql> alter user 'root'@'localhost' identified by '123456';
mysql> flush privileges;        // 使用flush privileges在插入之后刷新系统权限相关表
Query OK, 0 rows affected (0.00 sec)

OK 新密码设置成功

8:设置开机启动

方法一:(推荐)

chkconfig  --add mysqld   //加入系统中,可以是使用 systemctl status mysqld.service 命令了
chkconfig mysqld on     //开机自启动

方法二:

[root@VMTest mysql]# chkconfig --level 35 mysqld on
[root@VMTest mysql]# chkconfig --list mysqld
[root@VMTest mysql]# chkconfig --add mysqld
[root@VMTest mysql]# chkconfig --list mysqld
[root@VMTest mysql]# service mysqld status

四:编译安装mariadb

一般我不太愿意用mysql,那个玩意,有的时候不太友好。

我还是比较喜欢mariadb。

1:安装cmake环境

安装MariaDB之前,首先要安装cmake,另外为了保证不缺依赖,使用yum或者rpm安装依赖:readline-devel,zlib-devel,openssl-devel,libaio-devel并且readline-devel依赖于ncurses-devel,如果使用yum的话会自动将所需依赖安装好,具体命令如下:

yum -y install readline-devel
yum -y install zlib-devel
yum -y install openssl-devel
yum -y install libaio-devel
yum -y install ncurses-devel

(1):进入/usr/local/download/目录

cd /usr/local/download

(2):解压源码包

wget 
https:
//cmake.org/files/v3.12/cmake-3.12.0-rc1.tar.gz

(3):解压CMake源码包

tar -zxvf cmake
-3.12.0
-rc1.tar.gz

(4):进入cmark的源码目录

cd cmake
-3.12.0
-rc1

(5):运行当前目录下的一个文件

./bootstrap

(6):编译并安装(时间稍长)

gmake&&gmake install

(7):查看版本号

cmake --version

2:安装mariadb

这个安装和php及nginx的安装类似,只是mariadb的编译是使用cmake

这里提前预定mysql的安装目录为/usr/local/mariadb并且数据表文件目录为/usr/local/mariadb /mysqldata,

(1):下载

cd /usr/local/download
wget https://downloads.mariadb.org/f/mariadb-10.5.6/source/mariadb-10.5.6.tar.gz

(2):创建用户及用户组

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

(3):解压、预编译、编译安装

# 解压
tar -zxvf mariadb-10.5.6.tar.gz
# 进入目录
cd mariadb-10.5.6
# 预编译,将与
cmake -j . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mariadb \
-DMYSQL_DATADIR=/usr/local/mariadb/mysqldata/ \
-DSYSCONFDIR=/usr/local/mariadb \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
-DWITHOUT_TOKUDB=1 \
-DMYSQL_UNIX_ADDR=/usr/local/mariadb/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
 
# 编译安装
make&&make install

(4):配置启动文件及权限等

# 进入安装目录
cd /usr/local/mariadb/
# 创建启动文件
cp support-files/mysql.server /etc/init.d/mysqld
# 添加执行权限
chmod +x /etc/init.d/mysqld
# 创建存放数据表目录
mkdir -p mkdir /usr/local/mariadb/mysqldata/
# 创建存放mysql.sock目录
mkdir -p mkdir /usr/local/mariadb/tmp/
# 修改mariadb目录权限
chown -R mysql:mysql /usr/local/mariadb/
# 创建mariadb配置文件
vim /usr/local/mariadb/my.cnf
[mysqld]
basedir=/usr/local/mariadb/
datadir=/usr/local/mariadb/mysqldata/
port=3306
pid-file=/usr/local/mariadb/mysqldata/mysql.pid
socket=/usr/local/mariadb/tmp/mysql.sock
 
[mysqld_safe]
log-error=/usr/local/mariadb/mysqldata/mysql.log
 
[client]
port=3306
socket=/usr/local/mariadb/tmp/mysql.sock
default-character-set=utf8
# 删除默认mariadb配置文件(默认加载默认的my.cnf文件,不删除,启动会报错)
rm -rf /etc/my.cnf

(5):数据初始化

/usr/local/mariadb/scripts/mysql_install_db --datadir=/usr/local/mariadb/mysqldata

初始化成功:

[root@iZuf60ynur81p6k0ysvtneZ mariadb]# /usr/local/mariadb/scripts/mysql_install_db --datadir=/usr/local/mariadb/mysqldata
Installing MariaDB/MySQL system tables in '/usr/local/mariadb/mysqldata' ...
OK
 
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
 
 
Two all-privilege accounts were created.
One is root@localhost, it has no password, but you need to
be system 'root' user to connect. Use, for example, sudo mysql
The second is root@localhost, it has no password either, but
you need to be the system 'root' user to connect.
After connecting you can set the password, if you would need to be
able to connect as any of these users with a password and without sudo
 
See the MariaDB Knowledgebase at https://mariadb.com/kb or the
MySQL manual for more instructions.
 
You can start the MariaDB daemon with:
cd '.' ; ./bin/mysqld_safe --datadir='/usr/local/mariadb/mysqldata'
 
You can test the MariaDB daemon with mysql-test-run.pl
cd './mysql-test' ; perl mysql-test-run.pl
 
Please report any problems at https://mariadb.org/jira
 
The latest information about MariaDB is available at https://mariadb.org/.
You can find additional information about the MySQL part at:
https://dev.mysql.com
Consider joining MariaDB's strong and vibrant community:
https://mariadb.org/get-involved/

(7):确保/usr/local/mariadb目录下的所有文件权限都是mysql

chown -R mysql:mysql /usr/local/mariadb/

(8):启动mysql

至此,mariadb安装成功,现在,我们来启动数据库:

/etc/init.d/mysqld start

启动成功:

[root@iZuf60ynur81p6k0ysvtneZ mariadb]# /etc/init.d/mysqld start
Starting MariaDB.201015 17:26:58 mysqld_safe Logging to '/usr/local/mariadb/mysqldata/mysql.log'.
201015 17:26:58 mysqld_safe Starting mariadbd daemon with databases from /usr/local/mariadb/mysqldata
                                                           [  OK  ]
 

(9):简化mariadb操作命令

默认操作mariadb命令:

/usr/local/mariadb/bin/mysql

比较长,用着不太方便,简化方式其实和php是一样的:

vim /root/.bash_profile

添加内容:

alias mysql=/usr/local/mariadb/bin/mariadb

修改完成,重载一下文件:

source /root/.bash_profile

或者创建软连接

ln -s /usr/local/mariadb/bin/mariadb /usr/bin/mariadb

(10):链接mariadb

Mariadb默认没有密码,所以直接使用

mysql -uroot -p

如下所示:

[root@iZuf60ynur81p6k0ysvtneZ mariadb]# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 6
Server version: 10.5.6-MariaDB Source distribution
 
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
MariaDB [(none)]>

数据库的其他配置,请移步《Centos7.6配置lnmp》

(11):重启服务器,运行mariadb报错:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/usr/local/mariadb/tmp/mysql.sock' (2)

原因是找不到本地套接字文件mysql.sock

默认位置是在/tmp/mysql.sock,但是我这里在my.cnf中配置了其位置:

在/usr/local/mariadb/tmp/mysql.sock

查看当前目录下是否有该文件,没有的话,重新启动mariadb,会自动生成mysql.sock文件,不要自己手动创建。

使用如下命令:(该命令,是我在安装时已配置好)

/etc/rc.d/init.d/mysqld restart

(12):设置开机启动

确保rc.local 文件有执行权限,否则,开机启动不生效

vim 
 /etc/rc.d/rc.local

添加如下内容:

/etc/rc.d/init.d/mysqld restart

至此,编译安装PHP,nginx,mysql,mariadb完成。

我这里都是指定位置安装,配置文件都在安装目录下,因此删除的时候相对比较方便。

升级的情况,之后要升级的时候会在写。

卸载软件的话,直接删除目录就好。

有好的建议,请在下方输入你的评论。

欢迎访问个人博客
https://guanchao.site

欢迎访问小程序:

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值