Linux科技

编译安装LNMP

2018-08-16  本文已影响4人  Miracle001
单机运行LNMP
centos1804

yum -y install gcc gcc-c++ openssl-devel cyrus-sasl-md5
yum -y install automake autocon libtool make glibc

下载wget
yum -y install wget
wget https://sourceforge.net/projects/pcre/files/pcre/8.41/pcre-8.41.tar.gz
tar xzvf pcre-8.41.tar.gz

下载zlib
wget https://sourceforge.net/projects/libpng/files/zlib/1.2.11/zlib-1.2.11.tar.gz
tar xzvf zlib-1.2.11.tar.gz

下载openssl
wget https://www.openssl.org/source/openssl-1.1.0b.tar.gz
tar -zxvf openssl-1.1.0b.tar.gz

为nginx添加用户及组
groupadd -r www
useradd -r -g www www

编译安装nginx

cd /root/
下载nginx
wget http://nginx.org/download/nginx-1.10.2.tar.gz
tar xzvf nginx-1.10.2.tar.gz

 mkdir -pv /alidata/{server,webapps,logs,packages}

cd nginx-1.10.2
./configure --prefix=/alidata/server/nginx-1.10.2 --sbin-path=/alidata/server/nginx-1.10.2/sbin/nginx --conf-path=/alidata/server/nginx-1.10.2/nginx.conf --pid-path=/alidata/server/nginx-1.10.2/nginx.pid --user=www --group=www --with-http_ssl_module --with-http_flv_module --with-http_mp4_module  --with-http_stub_status_module --with-select_module --with-poll_module --error-log-path=/alidata/logs/nginx/error.log --http-log-path=/alidata/logs/nginx/access.log  --with-pcre=/root/pcre-8.41 --with-zlib=/root/zlib-1.2.11 --with-openssl=/root/openssl-1.1.0b
make && make install

--prefix表示nginx要安装到哪个路径下,这里指定刚才新建好的/alidata/server目录下的nginx-1.12.2;
--sbin-path表示nginx的可执行文件存放路径
--conf-path表示nginx的主配置文件存放路径,nginx允许使用不同的配置文件启动,通过命令行中的-c选项
--pid-path表示nginx.pid文件的存放路径,将存储的主进程的进程号。安装完成后,可以随时改变的文件名 , 在nginx.conf配置文件中使用 PID指令。默认情况下,文件名 为prefix/logs/nginx.pid
--error-log-path表示nginx的主错误、警告、和诊断文件存放路径
--http-log-path表示nginx的主请求的HTTP服务器的日志文件的存放路径
--user表示nginx工作进程的用户
--group表示nginx工作进程的用户组
--with-select_module或--without-select_module表示启用或禁用构建一个模块来允许服务器使用select()方法
--with-poll_module或--without-poll_module表示启用或禁用构建一个模块来允许服务器使用poll()方法
--with-http_ssl_module表示使用https协议模块。默认情况下,该模块没有被构建。建立并运行此模块的OpenSSL库是必需的
--with-pcre表示pcre的源码路径,因为解压后的pcre是放在root目录下的,所以是/root/pcre-8.41;
--with-zlib表示zlib的源码路径,这里因为解压后的zlib是放在root目录下的,所以是/root/zlib-1.2.11
--with-openssl表示openssl库的源码路径
编译安装完成
安装成功后,可以看到在/alidata/server目录下,多出了一个nginx-1.10.2,里面即是nginx的实际运行程序。 


设置nginx配置文件

cd /alidata/server/nginx-1.10.2
mkdir -pv conf/vhosts
mkdir /alidata/logs/nginx/{access,error}
mkdir /alidata/server/nginx-1.10.2/logs

vim /alidata/server/nginx-1.10.2/nginx.conf
user  www www;
worker_processes  2;

error_log  /alidata/logs/nginx/error.log crit;

pid        /alidata/server/nginx-1.10.2/logs/nginx.pid;

worker_rlimit_nofile 65535;

events {
    use epoll;
    worker_connections  65535;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    access_log  /alidata/logs/nginx/access.log;

    server_names_hash_bucket_size 128;
    client_header_buffer_size 32k;
    large_client_header_buffers 4 32k;
    client_max_body_size 8m;

    sendfile        on;
    tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    gzip  on;
    gzip_min_length     1k;
    gzip_buffers        4    16k;
    gzip_http_version   1.0;
    gzip_comp_level     2;
    gzip_types          text/plain  application/x-javascript  text/css  application/xml;
    gzip_vary           on;


    tcp_nodelay         on;


    fastcgi_connect_timeout     300;
    fastcgi_send_timeout     300;
    fastcgi_read_timeout     300;
    fastcgi_buffer_size      64k;
    fastcgi_buffers          4   64k;
    fastcgi_busy_buffers_size     128k;
    fastcgi_temp_file_write_size  128k;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    include   /alidata/server/nginx-1.10.2/conf/vhosts/*.conf;
    include   /alidata/server/nginx-1.10.2/conf/proxy/*.conf;
}


引用了/alidata/server/nginx-1.10.2/conf/vhosts/目录下所有后缀名是.conf的配置文件,
现在进入该目录编写一个默认配置文件default.conf,其内容是

vim /alidata/server/nginx-1.10.2/conf/vhosts/default.conf 
server {
    listen       80;
    server_name  localhost;
    index  index.html;
    root   /alidata/webapps;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
       expires  30d;
    }

    location ~ .*\.(js|css)?$ {
       expires  1h;

    }


    #伪静态规则
    include  /alidata/server/nginx-1.10.2/conf/rewrite/default.conf;
    access_log  /alidata/logs/nginx/access/default.log;
    error_log   /alidata/logs/nginx/error/default.log;
}

其中引入了一个/alidata/server/nginx-1.10.2/conf/rewrite/default.conf文件,
这个文件是用来编写rewrite规则的配置文件,用来实现伪静态,其内容是

mkdir /alidata/server/nginx-1.10.2/conf/rewrite

vim /alidata/server/nginx-1.10.2/conf/rewrite/default.conf 
rewrite ^(.*)-htm-(.*)$ $1.php?$2 last;
rewrite ^(.*)/simple/([a-z0-9\_]+\.html)$ $1/simple/index.php?$2 last;
rewrite ^(.*)/data/(.*)\.(html|php)$ 404.html last;
rewrite ^(.*)/attachment/(.*)\.(html|php)$ 404.html last;
rewrite ^(.*)/html/(.*)\.(html|php)$ 404.html last;

启动完成
/alidata/server/nginx-1.10.2/sbin/nginx  
ps aux |grep nginx
ps -e |grep nginx

加入系统环境变量
vim /etc/profile
在文件最末尾加上如下代码
export NGINX_HOME=/alidata/server/nginx-1.10.2
export PATH=$PATH:$NGINX_HOME/sbin

. /etc/profile  重读配置文件  或者 source  /etc/profile

echo $PATH
命令查看环境变量中是否已经加入了相关的路径

加入系统环境变量
加入系统服务

在/etc/init.d/目录下创建一个nginx文件

vim /etc/init.d/nginx    文件内容如下


#!/bin/bash
# chkconfig: - 85 15
PATH=/alidata/server/nginx-1.10.2
DESC="nginx daemon"
NAME=nginx
DAEMON=$PATH/sbin/$NAME
CONFIGFILE=$PATH/$NAME.conf
PIDFILE=$PATH/logs/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
set -e
[ -x "$DAEMON" ] || exit 0
do_start() {
$DAEMON -c $CONFIGFILE || echo -n "nginx already running"
}
do_stop() {
$DAEMON -s stop || echo -n "nginx not running"
}
do_reload() {
$DAEMON -s reload || echo -n "nginx can't reload"
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
do_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
do_stop
echo "."
;;
reload|graceful)
echo -n "Reloading $DESC configuration..."
do_reload
echo "."
;;
restart)
echo -n "Restarting $DESC: $NAME"
do_stop
do_start
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" 
exit 3
;;
esac
exit 0
其中,需要注意几个变量,分别是PATH、NAME、DAEMON、CONFIGFILE、PIDFILE、SCRIPTNAME,
其中,PATH设置为nginx的安装路径,
DAEMON设置为nginx启动脚本的路径,
CONFIGFILE是nginx.conf文件的路径,
PIDFILE是进程文件的路径,需要与nginx.conf文件中的配置一致,
SCRIPTNAME则是要指向当前文件路径/etc/init.d/nginx 
将上述文件保存后,一定要记得给其赋予可执行的权限,具体命令如下

chmod +x /etc/init.d/nginx

至此,我们已将nginx加入了系统服务,
由于本文描述的实在CentOS 7环境下安装,
所以与CentOS 6不同的是,不再使用类似于  service nginx start  这样的命令来开启或者关闭服务,
而是使用如下命令开启和关闭服务

首先要确认之前打开的nginx进程已被杀死,
ps aux|grep nginx;kill 28150

其次可以尝试先执行
/bin/systemctl start nginx
显示"Failed to start nginx.service: Unit not found."
ps aux|grep nginx  没有启动成功

systemctl enable nginx  或者  /sbin/chkconfig nginx on  设置nginx开机自启动
显示:
"nginx.service is not a native service, redirecting to /sbin/chkconfig."
"Executing /sbin/chkconfig nginx on"

执行:echo $?  0--ok
/bin/systemctl start nginx
ps aux|grep nginx  启动成功

其他命令:不用执行
/bin/systemctl stop nginx
/bin/systemctl reload nginx

编译安装PHP

cd /root/
下载地址:http://php.net/releases/
包名:php-7.0.30.tar.gz
解压:tar xzvf php-7.0.30.tar.gz
下载bz2压缩包,需要:yum -y install bzip2;  tar -jxvf php-7.0.30.tar.bz2

安装依赖包
yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype-devel libxml2 libxml2-devel mysql pcre-devel curl-devel libxslt-devel gcc openssl-devel libmcrypt-devel

编译时报错:configure: error: Cannot find OpenSSL's <evp.h>
yum -y install openssl-devel,已安装忽略

编译时报错:configure: error: mcrypt.h not found. Please reinstall libmcrypt
yum -y install libmcrypt-devel,已安装忽略

cd php-7.0.30/

编译:
./configure --prefix=/alidata/server/php-7.0.30 --with-config-file-path=/alidata/server/php-7.0.30/etc --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --with-zlib-dir --with-mhash --with-mcrypt --with-openssl-dir --with-jpeg-dir --enable-gd-jis-conv --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-maintainer-zts --enable-zip
执行完成,如下图1

make
make install 
编译成功,如下图2

1
2
设置php配置文件
将官方提供的配置模板拷贝到配置参数中所指定的目录中

cp php.ini-production /alidata/server/php-7.0.30/etc/php.ini
然后可以根据自己服务器的需求,对php.ini文件的内容进行修改


设置php-fpm配置文件,依次执行以下命令

cd /alidata/server/php-7.0.30/etc/
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf  内容进行如下修改
pid = /alidata/server/php-7.0.30/var/run/php-fpm.pid


cd /alidata/server/php-7.0.30/etc/php-fpm.d/
cp www.conf.default www.conf
vim www.conf  内容进行如下修改
user = www
group = www
listen = 127.0.0.1:9000
pm.max_children = 100
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
其他配置可根据自己的情况进行相应修改


启动php-fpm
完成以上配置后,即可启动php-fpm,执行以下命令
/alidata/server/php-7.0.30/sbin/php-fpm

ps aux | grep php-fpm
命令查看进程,若能够看到相关进程,则证明启动成功。查询进程时,可以看到进程是以www用户身份执行的


加入系统环境变量
vim /etc/profile 在文件最末尾加上如下代码
export PHP_HOME=/alidata/server/php-7.0.30
export PATH=$PATH:$PHP_HOME/bin:$PATH_HOME/sbin
重新加载配置文件
source /etc/profile
或者 . /etc/profile

echo $PATH  查看环境变量中是否已经加入了相关的路径

加入系统变量
加入系统服务
vim /etc/init.d/php-fpm
文件内容如下

#!/bin/bash
# php-fpm startup script for the php-fpm 
# php-fpm version:7.0.30
# chkconfig: - 85 15
# description: php-fpm
# processname: php-fpm
# pidfile: /alidata/server/php-7.0.30/var/run/php-fpm.pid
# config: /alidata/server/php-7.0.30/etc/php-fpm.conf

php_command=/alidata/server/php-7.0.30/sbin/php-fom
php_config=/alidata/server/php-7.0.30/etc/php-fpm.conf
php_pid=/alidata/server/php-7.0.30/var/run/php-fpm.pid
RETVAL=0
prog="php-fpm"

#start function
php_fpm_start() {
    /alidata/server/php-7.0.30/sbin/php-fpm
}

start(){
    if [ -e $php_pid  ]
    then
    echo "php-fpm already start..."
    exit 1
    fi
    php_fpm_start
}

stop(){
    if [ -e $php_pid ]
    then
    parent_pid=`cat $php_pid`
    all_pid=`ps -ef | grep php-fpm | awk '{if('$parent_pid' == $3){print $2}}'`
    for pid in $all_pid
    do
            kill $pid
        done
        kill $parent_pid
    fi
    exit 1
}

restart(){
    stop
    start
}

# See how we were called.
case "$1" in
start)
        start
        ;;
stop)
        stop
        ;;
restart)
        stop
        start
        ;;
status)
        status $prog
        RETVAL=$?
        ;;
*)
        echo $"Usage: $prog {start|stop|restart|status}"
        exit 1
esac
exit $RETVAL

其中
php_command表示php-fpm可执行脚本的路径,
php_config表示php-fpm的配置文件路径,
php_pid表示php-fpm进程文件的路径


设置php-fpm开机自启动
经过上面的操作,php-fpm已被添加为系统服务,所以可以将其设置为开机自启动,
这样就可以避免每次服务器重启之后需要手动开启php-fpm的操作,具体命令如下

chkconfig --add php-fpm
chkconfig php-fpm on
或者
systemctl enable php-fpm

配置Nginx+PHP

与Apache服务器不同的是,Nginx本身并不解释、运行PHP代码,
Nginx只是将用户端发来的HTTP请求进行转发,
真正解释运行PHP代码的是php-fpm进程,
所以,这里只需要将Nginx收到的http请求转发给php-fpm即可。 
根据本文前序步骤,已经完成了Nginx和PHP的安装和配置,
接下来,只需要在Nginx的配置文件中加入转发至php-fpm的配置即可。


配置Nginx+PHP

本文中对Nginx进行了多域名配置,
每个域名只需要在/alidata/server/nginx-1.10.2/conf/vhosts目录下有一个自己的配置文件即可,
所以重点就在这个配置文件里,
现在假定我们需要查看当前服务器的php信息,因为本文没有涉及到域名解析及配置的相关信息,
所以这里就以IP访问为例进行配置讲解,
首先,需要在我们的web代码根路径/alidata/webapps下创建一个info.php文件,执行以下命令

vim /alidata/webapps/info.php
<?php
phpinfo();
?>


对Nginx的配置文件进行修改
前文已经在/alidata/server/nginx-1.10.2/conf/vhosts目录下创建了default.conf配置文件,
现在对这个文件的内容进行修改,修改后的内容如下

vim /alidata/server/nginx-1.10.2/conf/vhosts/default.conf
server {
    listen       80;
    server_name  localhost;
    index  index.php index.htm index.html;
    root   /alidata/webapps;

    location ~ .*\.(php|php5)?$ {
        #fastcgi_pass unix:/tmp/php-cgi.sock;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi.conf;
    }

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
       expires  30d;
    }

    location ~ .*\.(js|css)?$ {
       expires  1h;

    }


    # 配置页面静态化
    include  /alidata/server/nginx-1.10.2/conf/rewrite/default.conf;
    access_log  /alidata/logs/nginx/access/default.log;
    error_log   /alidata/logs/nginx/error/default.log;
}

与之前的配置文件相比,主要是index配置项后,多了关于php的配置内容,
以及location相关配置中,多了对于php的内容,保存以上配置文件。

重新加载配置文件
nginx -t
nginx -s reload

通过浏览器访问:http://服务器的IP/info.php
http://192.168.25.101/info.php
有时候,界面显示"file not "需要等1-2分钟才会刷新出来
上文中php代码的运行效果,具体如下图所示 
php代码运行结果
至此,即完成了Nginx和PHP的配置。上述的配置只是最简单的配置;
若项目不是运行在web根目录下的,那么配置文件也需要对应的进行修改;
若项目是采用CodeIgniter或Laravel等其他框架技术开发的,那么也需要对配置文件进行相应修改;
这部分内容大家可自行百度,有很多相关的博客。

安装MySQL

下载安装cmake
cd /root/
wget https://cmake.org/files/v3.10/cmake-3.10.0-rc5.tar.gz
tar -xzvf cmake-3.10.0-rc5.tar.gz
cd cmake-3.10.0-rc5
./configure --prefix=/alidata/package/cmake
make && make install
export PATH=/package/cmake/bin:$PATH


下载并安装ncurses
cd /root/
wget http://ftp.gnu.org/gnu/ncurses/ncurses-6.0.tar.gz
tar -xzvf ncurses-6.0.tar.gz
cd ncurses-6.0
./configure --prefix=/alidata/package/ncurses
make
make install


安装libaio库
yum -y install libaio*   会安装libaio和libaio-devel这两个库


为MySQL添加用户及组
为了保证操作系统的安全,这里为mysql工作进程创建专用的用户
groupadd mysql
useradd -r -g mysql mysql


下载MySQL
https://dev.mysql.com/downloads/mysql/5.7.html#downloads

下载包
rz  上传mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
tar xzvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz 
mv mysql-5.7.23-linux-glibc2.12-x86_64 /alidata/server/mysql-5.7.23/  改名并移动此处

使用的是mysql官方提供的解压缩版的安装方式,不需要进行make操作。
将mysql文件夹移动到安装路径后,需要修改mysql安装文件夹的权限

chown -R mysql.mysql /alidata/server/mysql-5.7.23/

后续如果在该目录及其子目录下创建了任何文件和文件夹,
均需要再次执行该命令,以确保mysqld进程对该文件夹具有完全的读写权限


设置mysql配置文件
vim /etc/my.cnf  具体配置如下
[client]
port = 3306
socket = /alidata/server/mysql-5.7.23/tmp/mysql.sock

[mysqld]
basedir=/alidata/server/mysql-5.7.23/
datadir=/alidata/server/mysql-5.7.23/data
socket=/alidata/server/mysql-5.7.23/tmp/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

log-error=/alidata/logs/mysql/error.log
pid-file=/alidata/logs/mysql/mysql.pid

[mysqld_safe]
log-error=/alidata/logs/mariadb/error.log
pid-file=/alidata/logs/mariadb/mariadb.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
这里需要注意,配置文件最后一行引入了新的配置文件,my.cnf.d目录下名为mysql-clients.cnf的配置文件

cd /alidata/server/mysql-5.7.23/
mkdir tmp
touch tmp/mysql.sock
chown -R mysql:mysql tmp

mkdir data
chown -R mysql:mysql data

cd /alidata/logs/
mkdir mysql
touch mysql/{error.log,mysql.pid}
chown -R mysql:mysql mysql

mkdir mariadb
touch mariadb/{error.log,mariadb.pid}
chown -R mysql:mysql mariadb

在my.cnf配置文件中,需要注意几个配置,其中
basedir指的是mysql的安装目录,
datadir指的是mysql数据文件的存储目录,
其他几项配置项,可以查看官方解释。
特别说明一个问题是,
所有在配置文件中出现的路径、文件均需要具有可读写的权限,前面为MySQL创建了用户及组,
所以上述配置文件中涉及到的路径和文件,均需要将其所有者及组指定为mysql用户,这样MySQL服务才能正常启动。


完成以上配置后,需要将mysqld的启动脚本放入/etc/init.d/路径中,执行以下命令
cp -a /alidata/server/mysql-5.7.23/support-files/mysql.server /etc/init.d/mysqld
修改/etc/init.d/mysqld中的basedir和datadir,确保其值与my.cnf文件中的内容相同
vim /etc/init.d/mysqld
basedir=/alidata/server/mysql-5.7.23/
datadir=/alidata/server/mysql-5.7.23/data


初始化MySQL
因是MySQL 5.7.20版本,所以不能使用mysql_install_db命令
需要使用 mysqld -initialize 命令对数据库进行初始化,具体命令如下

/alidata/server/mysql-5.7.23/bin/mysqld --initialize --user=mysql --basedir=/alidata/server/mysql-5.7.23/ --datadir=/alidata/server/mysql-5.7.23/data/

若前面配置文件中的各配置项均正确,各路径、文件均存在并可读写,
此命令将提示执行成功,并能够在/root/目录下生成一个.mysql_secret文件,
使用cat命令可查看其内容,其是mysql中本地root用户的初始密码。

这里需要特别说明一下,如果没有显示随机密码,可以在日志中找到;
cat /alidata/logs/mysql/error.log
显示"...A temporary password is generated for root@localhost: q&JdC3>,4?KG"
密码:q&JdC3>,4?KG

启动,后台运行
/alidata/server/mysql-5.7.23/bin/mysqld_safe --user=mysql &

登陆并修改密码
/alidata/server/mysql-5.7.23/bin/mysql -uroot -p'q&JdC3>,4?KG'
set password for 'root'@localhost = password('qianggedu');
flush privileges;
quit
/alidata/server/mysql-5.7.23/bin/mysql -uroot -p
输入密码,成功登陆,OK


设置MySQL服务开机自启  依次执行以下命令
cd /alidata/server/mysql-5.7.23/
chkconfig --level 35 mysqld on

启动MySQL服务 
ps aux |grep mysql
root      84166  0.0  0.1 113312  1660 pts/0    S    16:15   0:00 /bin/sh /alidata/server/mysql-5.7.23/bin/mysqld_safe --user=mysql
mysql     84341  0.1 17.2 1182948 172180 pts/0  Sl   16:15   0:01 /alidata/server/mysql-5.7.23/bin/mysqld --basedir=/alidata/server/mysql-5.7.23/ --datadir=/alidata/server/mysql-5.7.23/data --plugin-dir=/alidata/server/mysql-5.7.23//lib/plugin --user=mysql --log-error=/alidata/logs/mariadb/error.log --pid-file=/alidata/logs/mariadb/mariadb.pid --socket=/alidata/server/mysql-5.7.23/tmp/mysql.sock
root      85266  0.0  0.0 112704   976 pts/0    R+   16:35   0:00 grep --color=auto mysql

使用kill命令将其全部杀掉
kill 84341  杀掉主的,其他自动断掉

启动MySQL服务
/etc/init.d/mysqld start
显示:Starting MySQL. SUCCESS!
ss -ntl  3306端口出现


接下来,使用root用户登录,然后进行创建用户,创建数据库,赋权等操作,属于MySQL的基本操作,不赘述。

上一篇下一篇

猜你喜欢

热点阅读