centos 7 php+nginx+mysql

在CentOS 7下编译安装Nginx+PHP+MySQL环境

1、前言

本文适合于已经对Linux操作系统具有基本操作经验,并且能够在Linux或Windows上通过一键搭建工具或者yum命令行进行环境搭建的读者,阅读本文需具有一定的专业知识,本文不建议初学者阅读。

本文所描述的是在标准的CentOS 7.2 64位操作系统下,安装Nginx 1.12.2 + PHP 7.1.11 + MySQL 5.7.20环境。采用源码编译安装的方式,虽然较直接使用yum命令安装较为复杂,但是源码安装可以自定义指定安装路径,可以自定义配置安装配套的库和插件,这样服务器运维人员将更清楚自己服务器的情况,从而,在日后的环境、插件的升级和更新操作中,将变得更加简便和容易。

2、准备安装工具

2.1、安装make

yum -y install gcc automake autoconf libtool make

2.2、安装g++

yum install gcc gcc-c++ glibc

2.3、创建安装目录

本文是在阿里云服务器上安装,所以在服务器根目录下创建alidata目录,然后在alidata目录里面分别创建server目录、webapps目录和package目录,其中server目录存放所有的服务器软件(本文中所涉及到的nginx、php、mysql等),webapps目录存放所有部署的代码及程序,package目录用来存放安装过程中需要用到的编译后的库文件。
需以root权限,依次执行以下命令

mkdir /data

mkdir –p /data/server

mkdir –p /data/server/logs

mkdir –p /data/webapps

这里需要说明,上述的server目录,是指环境安装完成后,运行程序所在的目录,并非nginx等程序的源码存放目录,为了方便,本文将下载到的这些运行环境程序的源码统一存放于/root目录下,读者可根据自身情况及喜好,将运行环境程序源码存放于任意不是/alidata/server的目录下。

3、安装Nginx

3.1、下载并解压pcre

官网:http://www.pcre.org/
依次执行以下命令

cd /root/
wget https://sourceforge.net/projects/pcre/files/pcre/8.41/pcre-8.41.tar.gz
tar -zxvf pcre-8.41.tar.gz

3.2、下载并解压zlib

官网:http://zlib.net/
依次执行以下命令

cd /root/
wget https://sourceforge.net/projects/libpng/files/zlib/1.2.11/zlib-1.2.11.tar.gz
tar –zxvf zlib-1.2.11.tar.gz

3.3、下载并解压openssl

官网:https://www.openssl.org/
依次执行以下命令

cd /root/
wget https://www.openssl.org/source/openssl-1.1.0b.tar.gz
tar –zxvf openssl-1.1.0b.tar.gz

3.4、为nginx添加用户及组

nginx的工作进程需要以某一个用户的权限进行运行,为了服务器安全,一般指定一个普通用户权限的账号做为nginx的运行角色,根据个人习惯,这里使用www用户做为nginx工作进程的用户,后续安装的PHP也以www用户做为工作进程用户,依次执行以下命令以创建用户及用户组

groupadd -r www
useradd -r -g www www

3.5、下载并安装nginx

官网:http://nginx.org/

依次执行以下命令

缺少 zlib的头文件, 开发包没装,

yum install zlib (系统默认已经装上)

yum install zlib-devel


cd /root/
wget http://nginx.org/download/nginx-1.12.2.tar.gz
tar –zxvf nginx-1.12.2.tar.gz

以上命令完成下载和解压操作,接下来进行安装操作

./configure --prefix=/usr/local/nginx-1.12.2 --sbin-path=/usr/local/nginx-1.12.2/sbin/nginx --conf-path=/usr/local/nginx-1.12.2/nginx.conf --pid-path=/usr/local/nginx-1.12.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=/usr/local/logs/nginx/error.log --http-log-path=/usr/local/logs/nginx/access.log --with-pcre=/data/install_file/pcre-8.41 --with-zlib=/data/install_file/zlib-1.2.11 --with-openssl=/data/install_file/openssl-1.1.0b
make
make install

其中,./configure是对安装进行配置;
–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库的源码路径
配置成功后,依次执行make和make install命令,即可安装Nginx,安装成功后,可以看到在/alidata/server目录下,多出了一个nginx-1.12.2,里面即是nginx的实际运行程序。

3.6、设置nginx配置文件

本文配置的nginx支持多域名,每个域名的配置文件单独放在/alidata/server/nginx-1.12.2/conf/vhosts路径下,使用vim命令打开nginx.conf文件,对其内容进行修改

user  www www;

worker_processes  2;

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

pid        /alidata/server/nginx-1.12.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  main;

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  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 ‘$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.12.2/conf/vhosts/*.conf;

include /alidata/server/nginx-1.12.2/conf/proxy/*.conf;

}

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

server {

listen       80;

server_name  localhost;

index index.html;

root /alidata/webapps;

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

{

expires 30d;

}

location ~ .*\.(js|css)?$

{

expires 1h;

}

#伪静态规则

include /alidata/server/nginx-1.12.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.12.2/conf/rewrite/default.conf文件,这个文件是用来编写rewrite规则的配置文件,用来实现伪静态,其内容是

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

3.7、启动nginx

以本文为例,启动nginx需要执行以下命令

/usr/local/nginx-1.12.2/sbin/nginx

重起nginx:/usr/local/nginx-1.12.2/sbin/nginx -s reload

启动后,使用命令

ps aux | grep nginx

查看进程,若能够看到相关进程,则证明启动成功。查询进程时,可以看到进程是以www用户身份执行的

3.8、加入系统环境变量

使用vim命令打开/etc/profile文件,在文件最末尾加上如下代码

export NGINX_HOME=/alidata/server/nginx-1.12.2
export PATH=$PATH:$NGINX_HOME/sbin

保存修改后,使用source命令重新加载配置文件,命令如下

source /etc/profile

执行上述命令后,可使用

echo $PATH

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

3.9、加入系统服务

使用vim命令在/etc/init.d/目录下创建一个nginx文件,命令如下

vim /etc/init.d/nginx

文件内容如下

#!/bin/bash
# chkconfig: – 85 15
PATH=/alidata/server/nginx-1.12.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}” >&2
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

这样的命令来开启或者关闭服务,而是使用如下命令开启和关闭服务

/bin/systemctl start nginx
/bin/systemctl stop nginx
/bin/systemctl reload nginx

若此时无法执行以上命令,首先要确认之前打开的nginx进程已被杀死,其次可以尝试先执行

systemctl enable nginx

命令,然后再执行上述三个命令。

3.10、设置nginx开机自启动

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

chkconfig –add nginx
chkconfig nginx on

或者

systemctl enable nginx

4、安装php

4.1、通过yum命令安装php需要的常用库

依次执行以下命令

yum -y install libmcrypt-devel mhash-devel libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel

4.2、下载并安装php

官网:http://php.net/
依次执行以下命令

cd /root/
下载7.2.4php安装包

以上命令完成下载和解压操作,接下来进行安装操作

./configure --prefix=/usr/local/php-7.2.4 --with-config-file-path=/usr/local/php-7.2.4/etc --enable-fpm --with-mcrypt --enable-mbstring --enable-pdo --with-curl --disable-debug --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --with-mhash --enable-zip --with-pcre-regex --with-mysqli --with-gd --with-jpeg-dir --with-freetype-dir --enable-calendar
make
make install

4.3、设置php配置文件

将官方提供的配置模板拷贝到配置参数中所指定的目录中

cp php.ini-production  /usr/local/php-7.2.4/etc/php.ini

然后可以根据自己服务器的需求,对php.ini文件的内容进行修改

4.4、设置php-fpm配置文件

依次执行以下命令

cd usr/local/php-7.2.4/etc/
cp php-fpm.conf.default php-fpm.conf
cd /usr/local/php-7.2.4/etc/php-fpm.d
cp www.conf.default www.conf

使用vim命令对php-fpm.conf的内容进行如下修改

pid= /alidata/server/php-7.1.11/var/run/php-fpm.pid

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

其他配置可根据自己的情况进行相应修改

4.5、启动php-fpm

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

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

启动后,使用

ps aux | grep php-fpm

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

4.6、加入系统环境变量

使用vim命令打开/etc/profile文件,在文件最末尾加上如下代码

export PHP_HOME=/usr/local/php-7.2.4
export PATH=$PATH:$PHP_HOME/bin:$PHP_HOME/sbin

保存修改后,使用source命令重新加载配置文件,命令如下

source /etc/profile

执行上述命令后,可使用

echo $PATH

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

4.7、加入系统服务

使用vim命令在/etc/init.d/目录下创建一个php-fpm文件,命令如下

vim /etc/init.d/php-fpm

文件内容如下

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

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

#start function
php_fpm_start() {
/alidata/server/php-7.1.11/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进程文件的路径

4.8、设置php-fpm开机自启动

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

chkconfig –add php-fpm
chkconfig php-fpm on

或者

systemctl enable php-fpm

5、安装MySQL

Linux中MySQL5.6编译安装与MySQL5.7二进制安装步骤


首先,介绍一下MySQL的几种安装方式

1、RPM、Yum 的安装方式:安装方便、安装速度快,无法定制

2、二进制:不需要安装,解压即可使用,不能定制功能

3、编译安装:可定制,安装慢。

     编译安装中需要注意的是 5.5之前的编译方式是:./configure  make && make install 

     而5.5之后则使用:cmake

企业中使用的安装方式:先编译,然后制作rpm,制作yum库,然后yum安装。

简单、速度快、可定制,比较复杂 制作时间长

MySQL的获取方式

软件包尽量去官方网站下载

官方地址:https://www.mysql.com/

不同的安装方式下载不同的包

Linux-Generic 代表的是二进制包

编译安装的话下载Source Code,表示源码包

博主的安装方式是编译安装方式,而二进制安装方式,就是将下载的二进制包解压后,即可

MySQL5.6安装与5.7安装过程中有哪些差异

5.6与5.7的编译安装差异主要是初始化不同

5.7初始化完成后,会自动设置一个初始密码,而5.6没有

MySQL5.6编译安装部署

1、安装依赖包

按 Ctrl+C 复制代码
按 Ctrl+C 复制代码

2、创建管理用户

useradd -s /sbin/nologin -M -u 999 mysql

最好指定好uid,对管理数据库有好处

3、解压安装

找到下载的mysql包所在路径,然后进行解压,软件包尽量去官方网站下载

tar zxf mysql-5.6.36.tar.gz

解压完成后,使用 cd 进入解压好的mysql目录中,进行cmake

复制代码
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.36 \
-DMYSQL_DATADIR=/application/mysql-5.6.36/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.6.36/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0
复制代码

cmake安装过程做了什么呢?

(1)定制功能:存储引擎、字符集、压缩等

(2)定制安装位置、数据存放位置、文件位置

4、进行编译安装

make && make install 

这两步完成后然后创建软连接,这样在使用mysql的时候方便

ln -s /application/mysql-5.6.36/ /application/mysql

5、初始化及配置数据库

这步做的主要是指定mysql的管理用户,程序路径,数据存储路径

如果不设置管理用户为mysql会导致启动报错

对于mysql的 my.cnf 配置文件参数优化与解释请参照:http://www.cnblogs.com/lyq863987322/p/8074749.html

\cp /application/mysql/support-files/my*.cnf /etc/my.cnf     ### 将配置文件复制到/etc下,可以不用复制

/application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data --user=mysql 

6、设置mysql目录权限

chown -R mysql.mysql /application/mysql/

将启动文件复制到/etc/init.d下,方便启动关闭管理,并启动

cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod 700 /etc/init.d/mysqld
/etc/init.d/mysqld start

7、设置命令环境变量

这一步就是对于博主这种比较懒得人有好处了,以后在登陆的时候就不用在将mysql的详细路径打一遍了

echo 'PATH=/application/mysql/bin/:$PATH' >>/etc/profile   --- 将mysql命令路径添加到环境变量配置文件
tail -1 /etc/profile    ----- 查看添加结果
source /etc/profile     ----- 有结果了,执行这一步让环境变量生效
echo $PATH           --- 不放心可以再检查一下生效了没有
mysql        ----- 这样就可以直接登陆了

这样mysql5.6就已经安装完成了,默认的登陆是没有密码

设置/修改密码:

mysqladmin -u root password '123456'

mysql -uroot -p123456

MySQL5.7二进制安装部署

1、解压mysql二进制包

tar xf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

2、将解压完的mysql目录移动到程序目录(自己设置放哪)

并且设置软连接

mv mysql-5.7.17-linux-glibc2.5-x86_64 /application/mysql-5.7.17
ln -s /application/mysql-5.7.17 /application/mysql

3、创建管理用户,并授权

useradd -s /sbin/nologin -M -u 999 mysql
chown -R mysql.mysql /application/mysql-5.7.17

4、初始化配置数据库

/application/mysql-5.7.17/bin/mysqld --initialize --user=mysql --basedir=/application/mysql-5.7.17 --datadir=/application/mysql-5.7.17/data

执行初始化的输出信息:最后一行有初始密码,一定要先记住

复制代码
2017-12-20T08:08:00.604818Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-12-20T08:08:03.828187Z 0 [Warning] InnoDB: New log files created, LSN=45790
2017-12-20T08:08:04.164378Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2017-12-20T08:08:04.389472Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: e7a07703-e55c-11e7-b24e-000c29c5641d.
2017-12-20T08:08:04.391108Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2017-12-20T08:08:04.827938Z 1 [Note] A temporary password is generated for root@localhost: *:vQq%O:E6dD
复制代码

5、拷贝配置文件和启动文件

对于mysql的 my.cnf 配置文件参数优化与解释请参照:http://www.cnblogs.com/lyq863987322/p/8074749.html

cp /application/mysql-5.7.17/support-files/my-default.cnf /etc/my.cnf

cp /application/mysql-5.7.17/support-files/mysql.server /etc/init.d/mysqld

6、修改启动文件内容

因为启动文件中指定的mysql程序路径与安装路径不同,所以需要改过来 (这步没有弄明白可以不操作)

sed 's#/usr/local#/application#g' /application/mysql-5.7.17/bin/mysqld_safe /etc/init.d/mysqld -i

7、配置环境变量

echo 'PATH=/application/mysql/bin/:$PATH' >>/etc/profile
tail -1 /etc/profile
source /etc/profile
echo $PATH

8、安装完成修改密码登陆

复制代码
mysql -uroot -p
注意:密码输入生成的不对,就敲回车即可
[root@baba tools]# mysqladmin -uroot -p password '123456'
Enter password: 
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

[root@baba tools]# mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.17 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

猜你喜欢

转载自blog.csdn.net/qq_26987043/article/details/79759057