TypechoJoeTheme

Dcr163的博客

统计

从零搭建LNMP WEB环境(环境centos 6.5_x86)

2015-10-18
/
0 评论
/
626 阅读
/
正在检测是否收录...
10/18

「LNMP」即Linux,Nginx,MySQL,PHP。我个人的理解是: Linux就是环境所在的操作系统;Nginx则是一个「高性能的HTTP和反向代理服务器」,官网地址:http://nginx.org/;MySQL则是一个方便地对数据进行增删改查的数据库管理系统,官网地址:http://www.mysql.com/;PHP则是用来处理具体请求的脚本语言,官网地址:http://www.php.net/。 运用这4件工具,最简单直接的一个用途就是搭建一个网站,例如现在我的个人网站就是在「LNMP」上面跑的,然后博客(我使用WordPress)、新闻等其它内容也可以放到网站中。其实在Nginx开始受到关注之前,「LAMP」是搭建网站比较流行的选择,即LinuxApacheMySQLPHP。本文的目的就是介绍一下如何从零开始搭建一个LNMP环境,然后初步让一个网页能够通过浏览器走HTTP请求访问。这里我们使用的不是LNMP的一键安装包,而是难度稍微高「一点」的逐个安装,这样做或许能让你对这个环境的细节有更好的理解,而且对各部分的定制程度可以达到最高。

1 开始前的一些Tips

下面给出的操作步骤对于Linux来说是通用的,缺什么就安装什么,只是不同的Linux所输入的内容可能有些不同而已。我是直接在阿里云ECS上面操作 的,Linux的版本是CentOS 6.3 64位,各位可以直接在阿里云的首页点击右上角的「免费试用」,选择CentOS 6.3 64位系统,然后通过SSH直接登陆到主机进行操作,这样是最方便的。另外一个选择是自己安装一个Linux然后在上面进行操作,这种方法也可以。现在我 也下载了 一个CentOS 6.5 64位把下面的步骤走一遍。在自己的系统上操作有个麻烦的地方: 如果你把系统搞坏了那么恢复起来可能要费点事,直接重装也需要一些时间,哪怕是在虚拟机上面操作,但是ECS上面直接点击重置就可以了;在下载一些系统的 依赖包时(例如使用wget命令下载MySQL)如果你的网速比较慢那么下载会比较久,但是阿里云ECS下载这些资源的速度嗖嗖地,非常快就下载完了。 有不少人会使用Ubuntu,我之前也使用过Ubuntu搭建LNMP,最终搭建成功了,只是安装依赖时有一些些麻烦,下面会讲到。在文中我会在必要地方 添加图片,但是会以文字为主,因为实在没有太多图片好添加。其实下面的所有内容都是按照这个这几个流程写的: 要安装什么程序?——PHP,NGINX,MYSQL;安装的这个程序,在编译时需要哪些扩展或者哪些库?(例如PHP安装OpenSSL,NGINX安 装openssl);下载这些扩展和库,下载完压缩包后解压缩得到这些库的代码,或者进一步地编译这些库并安装到一个指定的路径下;编译程序,将需要的 库、扩展添加到编译选项中,指定程序的安装路径;安装完成,测试。 因此下面的内容就是上面这5步的循环。那么,开始吧。

2 安装Linux

首先最基本的自然是你需要安装了Linux的操作系统,如果你只是尝试一下,可以安装在虚拟机里面,或者如果你已经在使用阿里云ECS那么系统就已经安装 好了。为了重新走一次所有的步骤, 我下载并在虚拟机安装了CentOS 6.5 64位的系统。当然你也可以使用其它的Linux发行版例如Ubuntu等,在接下来要输入命令的地方不同的Linux按需进行修改即可。在开始前,先安 装一些通常来说应该已经有的组件,不过以防没有可以检查并安装一下。对于使用CentOS的用户在root权限下输入命令:

yum -y install gcc automake autoconf libtool make gcc-c++ glibc

对于使用Ubuntu的用户,如果没记错则是将「yum -y install」替换为「sudo apt-get install」就可以了,原则就是把上面列出来的「gcc automake autoconf libtool make gcc-c++ glibc」这几个东西安装一下。

3 安装PHP

为了开启PHP的一些功能(例如对png格式的支持等),首先需要安装一些库,CentOS命令如下:

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

Ubuntu 12.04(其它版本我没有测试过)用户在这里可以先不行动,因为我试过即便在这里使用「sudo apt-get install ...」,后面在编译PHP的时候还是会提示找不到对应的库,原因可能是编译时的默认查找路径不正确。解决办法从理论上来说有2个: 找到PHP编译时查找库的路径,然后修改为「sudo apt-get install ...」安装后的路径;手动下载其中缺少的库,然后你自己安装到自己知道的一个目录,在编译PHP时手动指定这个库的路径(我当时用的就是这种方法,累死 不偿命啊,建议能折腾的研究一下第一个方法,然后把解决方案共享出来)。 库已经安装好了,要注意的是在编译PHP时可能会说缺少其中的几个库,到时候请各位在百度(或者谷歌)搜一下这个库的官网,使用wget下载然后解压然后安装到你指定的一个目录,最后在编译PHP时指定这个库安装后的路径即可。 为了方便演示,接下来碰到这个问题时,我默认使用以下的几个路径: 所有下载的压缩包放在「/home/reetsee/download/」这个文件夹下;所有的压缩包解压后的路径也是「/home/reetsee /download/」,即如果压缩包名字是「openssl-1.0.1e.tar.gz」,那么解压后「/home/reetsee /download/」下会有一个名字为「openssl-1.0.1e」的文件夹;所有的库安装路径都是「/home/reetsee /environment/lib/」,指定安装路径的方法下面会有。 要注意的是:如果你也使用「/home/xxx/...」这样的格式,最好保证这个「xxx」不是用户名,或者说 「/home/xxx」不是用户目录。比较好的做法是你在/home下创建一个目录并使用这个目录,例如在/home下使用mkdir xxx。具体原因会在Nginx的安装部分会提到403 Forbidden的时候讲解。现在可以开始尝试安装PHP了,首先我下载了PHP 5.4.29,不下载最新版的原因是我担心它和某些库会有兼容性问题(但我没有查证过这种问题是否存在)。在命令行下我先把当前目录切换到「/home /reetsee/download/」,然后输入下面的命令进行下载:

wget http://cn2.php.net/get/php-5.4.29.tar.gz/from/this/mirror

下载的场面大概是这样的: 下载后执行解压操作,并切换到PHP的代码目录:

tar zxvf php-5.4.29.tar.gz
cd php-5.4.29

执行以下命令对PHP的安装进行设置:

./configure --prefix=/home/reetsee/environment/php  --enable-fpm --with-mcrypt \
--enable-mbstring --disable-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-mysql --with-mysqli \
--with-gd --with-jpeg-dir --with-openssl

对上面的命令作一下简单的说明:

从总体来看就是设置安装的PHP需要或不需要哪些功能,安装目录是什么, 需要哪些库--prefix=/home/reetsee/environment/php :把PHP安装在「/home/reetsee/environment/php」目录下--enable-fpm :为了让Nginx和PHP能够互相「交谈」,需要一个叫做FastCGI的工具,因此PHP需要使用PHP-FPM来管理FastCGI。-- with-openssl :安装OpenSSL库其它的「--with-xxx」即需要xxx库,「--enable-yyy」即开启yyy的支持,「--disable- zzz」即禁用zzz。

在这一步,Ubuntu或者CentOS的用户十有八九会出现类似 「configure: error: mcrypt.h not found. Please reinstall libmcrypt.」的问题,这是因为缺少了mcrypt这个库(对于Ubuntu用户缺少的可能是其它库),那么接下来就把它下载并安装。下载并安装缺失的库——以mcrypt为例:在搜索引擎得知mcrypt的官网,进入源码下载的页面,复制「libmcrypt-2.5.7.tar.gz」的下载地址,切换到目录「/home/reetsee/download/」执行下载并安装的操作:

wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
tar zxvf libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7
./configure --prefix=/home/reetsee/environment/lib/mcrypt
make && make install

这样就把mcrypt安装到「/home/reetsee/environment/lib/mcrypt」下了。在PHP的源码目录进行「./configure ...」时,将原本的「--with-mcrypt」更改为「--with-mcrypt=/home/reetsee/environment/lib/mcrypt」,粗体部分就是你安装mcrypt的目录。———— mcrypt安装结束 ————回到PHP源码的目录重新configure,这次输入的命令要将mcrypt的安装路径添加进去,具体命令变为:

./configure --prefix=/home/reetsee/environment/php  --enable-fpm --with-mcrypt=/home/reetsee/environment/lib/mcrypt \
--enable-mbstring --disable-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-mysql --with-mysqli \
--with-gd --with-jpeg-dir --with-openssl

最后配置成功会出现「Thank you for using PHP.」,如下图:如 果你是用Ubuntu,会遇到很多编译依赖问题,例如上面的mcrypt的缺失,可以参考这篇博客:http://www.cnblogs.com /alexqdh/archive/2012/11/20/2776017.html,博主碰到的问题与原本我碰到的问题几乎一模一样。配置完就输入以下 命令进行安装:

make && make install
安装需要一段时间,可以喝杯茶~安装完后还有一点收尾工作,首先是配置php-fpm,首先是切换到php的安装目录下的etc文件夹:cd /home/reetsee/environment/php/etc/然后执行下面的命令:cp php-fpm.conf.default php-fpm.conf再对php-fpm.conf的内容进行修改,将「user = nobody」,「group = nobody」分别改为「user = www-data」,「group = www-data」,即如下图所示:

保存后需要保证名为「www-data」的用户以及组存在,因此在命令行执行下列语句:groupadd www-data
useradd -g www-data www-data这样PHP的安装配置工作就大体完成了 :-D 。不放心的可以编写一个简单的php脚本来测试一下有没有输出:<?php
/** /home/reetsee/tmp/phpinfo.php **/
echo phpinfo();
?>然后执行:/home/reetsee/environment/php/bin/php phpinfo.php如果看到PHP有关的信息,起码说明PHP本身的安装成功了。但是还有一些手尾要做: 创建php.ini文件,这个文件是对php一些运行选项进行配置的文件,非常重要,以后肯定会用到。官方文档在这 里:http://www.php.net/manual/zh/ini.php。方法是将PHP源码目录下的「php.ini-production」 文件复制到PHP安装目录下的「lib/」文件夹,并且重命名为「php.ini」。在我的机器上,输入命令「cp /home/reetsee/download/php-5.4.29/php.ini-production /home/reetsee/environment/php/lib/php.ini」即可完成。设置php-fpm.pid的路径,这个文件记录了 php-fpm的进程id,以后你要重启php-fpm时可以通过命令(假设你在PHP的安装目录下)「kill -USR2 `cat var/run/php-fpm.pid`」。注意那两个引号是反引号「`」,不是单引号或者双引号。具体的做法是编辑PHP安装目录下的「etc/php-fpm.conf」文件,找到「pid = 」这一行,将前面的分号「;」去掉。如下图所示: 至此就大功告成了。在下面安装完Nginx后,会启动php-fpm,到时候在PHP安装目录下就能看到 「var/run/php-fpm.pid」文件了。

4 安装Nginx

安装Nginx前也有一些库需要下载,分别是pcre,zlib以及openssl 。这里要说明的是下载这3个库的压缩包后,对其进行解压缩即可,无需安装。openssl要下载是因为Nginx在安装时需要的是openssl的源码(与PHP的安装不同)。下载并解压pcre:wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.34.tar.gz
tar zxvf pcre-8.34.tar.gz下载并解压zlib:wget http://zlib.net/zlib-1.2.8.tar.gz
tar zxvf zlib-1.2.8.tar.gz下载并解压openssl:wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz
tar zxvf openssl-1.0.1g.tar.gz好了,必要的库已经下载好,现在就正式开始下载Nginx并安装。首先下载Nginx并解压缩:wget http://nginx.org/download/nginx-1.4.2.tar.gz
tar zxvf nginx-1.4.2.tar.gz切换到Nginx的源码目录 「/home/reetsee/download/nginx-1.4.2」进行安装前的配置,根据你pcre、zlib、openssl所在的源码目录以及Nginx的最终安装路径,输入配置命令,我的配置命令如下:./configure --prefix=/home/reetsee/environment/nginx \
--with-http_ssl_module \
--with-pcre=/home/reetsee/download/pcre-8.34 \
--with-zlib=/home/reetsee/download/zlib-1.2.8 \
--with-openssl=/home/reetsee/download/openssl-1.0.1g这里附上一个配置说明列表(参考自http://www.nginx.cn/install):

--prefix=path 定义一个目录,存放服务器上的文件 ,也就是nginx的安装目录。默认使用 /usr/local/nginx。--sbin-path=path 设置nginx的可执行文件的路径,默认为 prefix/sbin/nginx.--conf-path=path 设置在nginx.conf配置文件的路径。nginx允许使用不同的配置文件启动,通过命令行中的-c选项。默认为prefix/conf /nginx.conf.--pid-path=path 设置nginx.pid文件,将存储的主进程的进程号。安装完成后,可以随时改变的文件名 , 在nginx.conf配置文件中使用 PID指令。默认情况下,文件名 为prefix/logs/nginx.pid.--error-log-path=path 设置主错误,警告,和诊断文件的名称。安装完成后,可以随时改变的文件名 ,在nginx.conf配置文件中 使用 的error_log指令。默认情况下,文件名 为prefix/logs/error.log.--http-log-path=path 设置主请求的HTTP服务器的日志文件的名称。安装完成后,可以随时改变的文件名 ,在nginx.conf配置文件中 使用 的access_log指令。默认情况下,文件名 为prefix/logs/access.log.--user=name 设置nginx工作进程的用户。安装完成后,可以随时更改的名称在nginx.conf配置文件中 使用的 user指令。默认的用户名是nobody。--group=name 设置nginx工作进程的用户组。安装完成后,可以随时更改的名称在nginx.conf配置文件中 使用的 user指令。默认的为非特权用户。--with-select_module --without-select_module 启用或禁用构建一个模块来允许服务器使用select()方法。该模块将自动建立,如果平台不支持的kqueue,epoll,rtsig或/dev /poll。--with-poll_module --without-poll_module 启用或禁用构建一个模块来允许服务器使用poll()方法。该模块将自动建立,如果平台不支持的kqueue,epoll,rtsig或/dev /poll。--without-http_gzip_module — 不编译压缩的HTTP服务器的响应模块。编译并运行此模块需要zlib库。--without-http_rewrite_module 不编译重写模块。编译并运行此模块需要PCRE库支持。--without-http_proxy_module — 不编译http_proxy模块。--with-http_ssl_module — 使用https协议模块。默认情况下,该模块没有被构建。建立并运行此模块的OpenSSL库是必需的。--with-pcre=path — 设置PCRE库的源码路径。PCRE库的源码(版本4.4 - 8.30)需要从PCRE网站下载并解压。其余的工作是Nginx的./ configure和make来完成。正则表达式使用在location指令和 ngx_http_rewrite_module 模块中。--with-pcre-jit —编译PCRE包含“just-in-time compilation”(1.1.12中, pcre_jit指令)。--with-zlib=path —设置的zlib库的源码路径。要下载从 zlib(版本1.1.3 - 1.2.5)的并解压。其余的工作是Nginx的./ configure和make完成。ngx_http_gzip_module模块需要使用zlib 。--with-cc-opt=parameters — 设置额外的参数将被添加到CFLAGS变量。例如,当你在FreeBSD上使用PCRE库时需要使用:--with-cc-opt="-I /usr/local/include。.如需要需要增加 select()支持的文件数量:--with-cc-opt="-D FD_SETSIZE=2048".--with-ld-opt=parameters —设置附加的参数,将用于在链接期间。例如,当在FreeBSD下使用该系统的PCRE库,应指定:--with-ld-opt="-L /usr/local/lib".

执行configure成功后进行安装:make && make install要验证Nginx是否安装成功了,可以切换到Nginx的安装目录(我的是「/home/reetsee/environment/nginx」),然后启动Nginx:./sbin/nginx然后你在浏览器中 访问你的机器的IP地址(有公网IP的可以访问公网IP,没有的可以打开CentOS的浏览器然后访问「127.0.0.1」),是不是就看到很漂亮的 「Welcome to nginx!」了?如果你访问时出现「403 Forbidden」,那么极其有可能你的nginx下的html所在的绝对路径中的某些文件夹的权限没有r或者x,你是否将Nginx安装到你的个人文件夹下了?例如你的用户名叫「abc」,然后你安装到了「/home/abc」下的子目录中?如果是的话,那就是权限不够了,因为Nginx的worker进程默认用户为「nobody」。解决方法有3个: 一个是把Nginx安装到其它目录,可以查看到效果(安装到其它目录后,记得先把原本运行的Nginx给kill掉);第二个是将没有权限的目录加上r和x权限;第三个是在nginx安装目录下编辑「conf/nginx.conf」,将「#user nobody」改为「user root」,如下图: 但是极其不建议使用第2种以及第3种方法,因为这样会有安全风险,如果你正在使用虚拟机测试或者仅仅是试用一下机器验证一下效果,那么就可以使用上面任何3种方法。下面就让Nginx通过PHP的FastCGI处理请求,首先到nginx的安装目录下,修改「conf/nginx.conf」文件,找到如下内容: # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
将第3~第7个「#」去掉,就是取消注释,同时将「/scripts$fastcgi_script_name」改为「$document_root$fastcgi_script_name」,即变为下面这样: # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
使用vim的列操作可以很快去掉它们。在nginx的安装目录下,新增一个PHP文件「html/index.php」,文件内容如下:<?php
echo phpinfo();
?>接下来就启动php-fpm以及重启nginx:/home/reetsee/environment/php/sbin/php-fpm #启动php-fpm
/home/reetsee/environment/nginx/sbin/nginx -s reload #重启nginx然后打开浏览器,访问一下「

机器ip

/index.php」,例如「127.0.0.1/index.php」,如果你看到PHP的输出信息了~恭喜就成功啦~那么Nginx的安装完成了。效果图如下:图 中的蓝色框内如果出现了php.ini,就证明加载php.ini配置文件成功了。如果你失败了欢迎留言。另外是关于nginx.conf中的 「127.0.0.1:9000」,这个其实是php-fpm的监听端口,是可以在php-fpm.conf中设置的。没有特殊需要使用默认即可。

5安装MySQL
现在到最麻烦的一步了——安装MySQL。说它麻烦是第一个是因为自从Orcale把MySQL收过来后到它的官网上下载一个MySQL就费力了不少,要找很久才能找到想要的下载连接,而且现在你上官网,不翻墙很有可能找不到下载连接! 我就是这样被坑了很久,我以为是官网网页出BUG了,当选择MySQL的版本时,对应的下载列表并没有更新,后来查看了一些网页的源码发现网页中使用了部 分来自Google域名下的js,而最近Google在中国被全面封杀,开了GoAgent重新连接才把列表正常刷出来了(说句题外话最近GoAgent 也有点不好使了)。第二个是因为MySQL安装后要设置的东西蛮多的,当时我也摸索了比较久。强烈建议大家也摸索一下MySQL的安装以及初始配置,在官 方文档中有非常详细的介绍。我选择MySQL5.5就是因为官网明确了这个版本是肯定在CentOS 6.x运行的。为了免去大家麻烦,我已经把下载的链接记录下来了,下面两个连接随便挑一个就可以了: 下载前的页面:http://dev.mysql.com/downloads/file.php?id=452366,不需要注册或者登陆的,找到下面 一行很隐蔽的「No thanks, just start my download.」并点击就可以了。下载链接:http://dev.mysql.com/get/Downloads/MySQL-5.5 /mysql-5.5.38-linux2.6-x86_64.tar.gz。 对于使用虚拟机的同学可以先用下载工具(如迅雷)先下载到本机,然后再复制到虚拟机里面。对于购买了主机的同学那就直接下载吧,使用wget或者其他方 式,大小在20M左右。先安装cmake,CentOS下执行命令:
yum -y install cmake
Ubuntu可以尝试「sudo apt-get install cmake」。或者也可以直接到cmake的官网下载源码后安装。下面输入命令添加名为「mysql」的用户和组,为后续步骤作准备:
groupadd mysql
useradd -r -g mysql mysql
解压下载好的MySQL:
tar zxvf mysql-5.5.38.tar.gz
接下来就要使用cmake对MySQL进行安装选项的设置(之前安装的PHP、Nginx都是使用源码目录下的configure文件),安装选项可以参 考官方文档,同时这篇博客也有参考作用:http://www.blogjava.net/kelly859/archive/2012/09/04 /387005.html。官方文档中列出的cmake选项,前面要加个D,例如「CMAKE_INSTALL_PREFIX」要变成 「-DCMAKE_INSTALL_PREFIX」,参见下面我的cmake命令。进入MySQL的源码目录,我的cmake命令如下:
cmake \
-DCMAKE_INSTALL_PREFIX=/home/database/mysql \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/home/database/mysql/run/mysql.sock \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_SSL=yes
以上各个选项的含义可以参看官方文档。对于「-DDEFAULT_CHARSET=utf8」以及 「-DDEFAULT_COLLATION=utf8mb4_general_ci」,主要考虑绝大多数情况下utf8编码就能够显示绝大多数的字符了,设置成 默认字符编码比较好,即便对于中文字符集的要求很高(例如各种生僻字、繁体字等),也可以在新建数据库表的时候显式地指定字符集为GBK。至于「-DMYSQL_UNIX_ADDR」这个选项,默认是等于「/tmp/mysql.sock」。设置完后安装MySQL:
make && make install
 
安装需要一段时间,可以喝杯茶~然后就开始数据库的初始化操作,首先切换目录到MySQL的安装目录:
cd /home/reetsee/environment/database/mysql/
 
 
修改权限
chmod +w /home/database/mysql
chown -R mysql:mysql /home/database/mysql
 
cp -f /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
如果不用innodb 就在my.cnf中配置关闭
vi /etc/my.cnf
添加
[mysqld]
default-storage-engine = MyISAM
innodb=OFF
skip-innodb
 
修改并复制服务文件
cd /usr/local/mysql/support-files/
cp -f mysql.server /etc/init.d/mysqld
vi /etc/init.d/mysqld
找到datadir=
修改为
datadir=/usr/local/mysql/data
 
安装 配置mysql 授权表:
/home/database/mysql/scripts/mysql_install_db
--defaults-file=/etc/my.cnf
--basedir=/home/database/
--datadir=/home/database/mysql/data
--user=mysql
 
#chmod +w /usr/local/mysql/data
#chown -R mysql:mysql /usr/local/mysql/data
#chmod +x /etc/init.d/mysqld
 
设置 mysqld 服务的运行级别
chkconfig --level 345 mysqld on
 
启动服务
/etc/init.d/mysqld start
 
设置数据库密码
/home/database/mysql/bin/mysqladmin password 'root
 
mysql -uroot -p
输入mysql密码
drop database test;
 
GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY 'root';
 //赋予任何主机上以root身份访问数据的权限
 
update mysql.user set password=password(root') where user='root' and host='%';
更新MySQL的权限表
flush privileges;
 
//delete from mysql.user where user='';
//delete from mysql.user where not (user='root') ;
 
 
此时需要开启linux防火墙的3306端口。
执行 vi /etc/sysconfig/iptables
添加
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
加入这句话就可以了, 注意这句话一定要加在最后一句话的上面. 否则不会生效.
同样如果是其它端口把”3306″换成相应端口即可
 
现在就可以用 mysql的管理软件 远程访问来操作你的数据库了'

                            
朗读
赞(0)
版权属于:

Dcr163的博客

本文链接:

https://dcr163.cn/45.html(转载时请注明本文出处及文章链接)

评论 (0)

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月

最新回复

  1. William Tardent
    2024-02-27
  2. Maryann Hamer
    2024-02-27
  3. Sanora Pantano
    2024-02-24
  4. aa
    2024-02-21
  5. Kassie Baum
    2024-01-28

标签云