zoukankan      html  css  js  c++  java
  • 有关phpmyAdMin详细使用说明[集合]

    1 配置DNS
      vi /var/named/yesgo.loc
      # 追加如下一行,当然你可以自定义其他别名或主机名
      mysql  IN  CNAME  ns.yesgo.loc.

      /etc/rc.d/init.d/named restart    //重启DNS服务
      nslookup               //测试是否解析成功

      2 建立FTP
      ##在安装MySQL的时候,我们已经建立了一个叫做mysql的帐号,如果你还没有建立,可以按照下面的语句建立:
      useradd mysq -s /dev/null -g ftpchroot
      passwd mysql

      3 安装phpMyAdmin
      tar xvzf /home/src/phpMy*
      cp /home/src/phpMyAdmin/* /home/mysql
      chown -R mysql /home/mysql
      chown -R mysql /home/mysql/*
      chmod 701 /home/mysql
      chmod 701 /home/mysql/*

      4 添加虚拟主机
      vi /usr/local/apache/conf/httpd.conf

      <VirtualHost mysql.yesgo.loc>
       ServerAdmin webmaster@yesgo.loc
       DocumentRoot /home/mysql
       ServerName mysql.yesgo.loc
       ErrorLog logs/mysql.yesgo.loc-error_log
       CustomLog logs/mysql.yesgo.loc-access_log common
     </VirtualHost>

      5 添加身份验证
      ##添加MySQL用户
      ##使用身份验证功能,phpMyAdmin需要一个启动用户,这个用户对mysql的相关表具有查询权限,具体定义如下:
      shell>mysql -p
      mysql>GRANT USAGE ON mysql.* TO '<stduser>'@'localhost' IDENTIFIED BY '<stdpass>';
      mysql>GRANT SELECT (Host, User, Select_priv, Insert_priv,   Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv,   Shutdown_priv, Process_priv, File_priv, Grant_priv,   References_priv, Index_priv, Alter_priv) ON mysql.user TO   '<stduser>'@'localhost';
      mysql>GRANT SELECT ON mysql.db TO '<stduser>'@'localhost';
      mysql>GRANT SELECT (Host, Db, User, Table_name, Table_priv,   Column_priv) ON mysql.tables_priv TO '<stduser>'@'localhost';

      ##修改配置文件
    Linux下PhpMyAdmin程序目录的安全管理  

      在Linux下开发Web程序,现在很流行的开发方法为:用PHP开发Web程序,用Apache做Web Server,Mysql充当后台管理数据库。这种组合使得开发Web程序简单、安全、效率高。由于程序是在Linux下运行,虽免去了版权费用,对数据库的管理却少了Windows下的图形界面管理工具,因此使用起来有点困难。现在有了一套由php开发爱好者写的管理Linux下数据库的程序,phpMyAdmin可极好的解决使用的易用性问题。PhpMyAdmin对管理Linux下的数据库行之有效,用户可以通过web浏览器新建删除数据库,增加、删除、修改表结构和表数据,还可以通过表单形式提交查询语句,返回数据结果。因此,现在很多的Linux服务器都使用phpMyAdmin管理数据库。
      PhpMyAdmin是一套放在服务器端的通过浏览器界面管理的程序,因此,确保其目录安全性十分重要,否则,将导致数据被盗取甚至遭到恶意破坏。下面将详细讲述一般的防范措施。

    一、 修改phpMyAdmin目录名:

      在不修改目录名前,其他人很容易洞察该目录名,造成安全隐患。如,假设一台Linux主机的域名为:www.test.com,那么不修改目录名的情况下,在地址栏中输入:www.test.com/phpMyAdmin/ 就将进入phpMyAdmin管理程序。因此如果将phpMyAdmin目录改名为一个别人不易知道的目录,如mynameadmin,这样,你在管理自己的数据库时,只要键入:www.test.com/mynameadmin/ 就可以通过浏览器管理数据库了。(注:下面仍将使用phpMyAdmin目录名,如果目录名已换,只需把phpMyAdmin改名为新的目录名即可。)

    二、 对phpMyAdmin目录加用户身份验证:
      这是很多网站需要用户验证时普遍使用的方法,这样当用户第一次浏览进入该目录时,都将出现一个提示窗口,提示用户输入用户名和密码验证,其是通过使用Apache Server的标准 mod_auth模块实现的,具体操作方法如下:

      1、VI编辑Apache Server配置文件,确保文件中如下两句话没有加注释,如果这两句话前有"#"符号,去掉"#"号。
      DocumentRoot /data/web/apache/public/htdocs
      AccessFileName . htaccess
      AllOerride All

      2、passwd程序创建用户文件:
      htpasswd - c /data/web/apache/secrects/.htpasswd 88998
      其中,-c表示选项告诉htpasswd你想生成一个新的用户文件,/data/web/apache/secrects/ 是你想存放 .htpasswd 文件的目录,文件名称为 .htpasswd,88998 是在验证时所用到的用户名,敲如以上命令后,系统提示你输入密码,这个密码就是验证时所需要用到的密码,该密码在 .htpasswd 文件中是加密的。现在用more来查看 /data/web/apache/secrects/.htpasswd文件,可以看到其中有一行用户名和一串加密密码。

      3、创建 .htaccess 文件:
      使用文本编辑器,在目录 phpMyAdmin (如果已经改名,就是新的目录名)下创建 .htaccess 文件,在文件中加入如下语句:
      AuthName "用户验证"
      AuthType Basic
      AuthUserFile /data/web/apache/public/htdocs/phpMyAdmin/.htpasswd
    require user 88998
      保存所做操作后,再去看phpMyAdmin目录,将提示验证窗口,输入刚用 htpasswd 命令创建的用户名和密码,即可进入该目录。

    三、 增加基于主机的访问控制:

      在修改了目录名和增加访问验证机制后,应该说现在的phpMyAdmin已经很安全了,但由于phpMyAdmin目录一般只是数据库管理员使用,为防止别人还知道目录名称和验证密码,还可以增加如下的基于主机的访问控制,基于主机的访问是通过验证用户机器IP来实现的,即只有符合条件的IP才可以反问该目录,否则拒绝访问。
    修改 .htaccess 文件如下:

      AuthName "用户验证"
      AuthType Basic
      AuthUserFile /data/web/apache/public/htdocs/phpMyAdmin/.htpasswd
    require user 88998

      order deny,allow
      deny from all
      allow from 202.100.222.80

      这里增加了三条基于主机访问控制指令,其中第一条 order 指令的值是由一个逗号隔开的名单,这个名单表明了哪一个指令更高的优先权,第二条指令 deny 定义不能访问该目录的主机,第三条指令 allow 定义可以访问该目录的主机,这样,该目录除了IP地址为 202.100.222.80 的机器可以访问该目录之外,其他的都不能访问,读者可以把该地址该为用户数据库管理员IP。

      总结:通过以上三点相结合,就可很好的确保 phpMyAdmin 目录的安全,非数据库管理员将很难通过phpMyAdmin程序读取数据。这里所讲的是针对于phpMyAdmin目录进行讲述,其他目录如需加访问限制,也可依此方法操作。

    phpMyAdmin 2.x.x - 文档(安装及配置)


    前言
      phpMyAdmin可以管理整个MySQL服务器(需要超级用户),也可以管理单个数据库。为了实现后一种,你将需要合理设置MySQL用户,他只能对允许的数据库进行读/写。那要等到你看过MySQL手册中相关的部分。

    快速安装

    将phpMyAdmin软件包解到一个目录下。
    打开config.inc.php3,根据你的环境,修改$cfgServers[1]["host"],$cfgServers[1]["user"]和$cfgServers[1]["password"]的值。可以看一下下面的配置部分所列出的所有可配置的变量,根据情况对其它参数进行修改。
    建议在安装完phpMyAdmin之后,对其目录进行保护(除非在一个企业内部网上)。例如,可以使用HTTP-AUTH(用一个.htaccess文件)。
    在浏览器中打开文件:安装主机域名/安装目录/index.php3。phpMyAdmin应该显示一个欢迎屏和你的数据库。
    phpMyAdmin支持多语言。如果要改成中文版本,则修改config.inc.php3中的require("english.inc.php3");为require("chinese_gb.inc.php3")。这样界面就是中文的了。好棒噢!
    保存config.inc.php3。
    安装注意
    请确认保护了phpMyAdmin目录。缺省是没有任何保护的!它不应该被随便一个人特别是搜索引擎读到。
    尽管我在每一页中都加了一个"nofollow"指令,也可能有的搜索引擎不考虑仍然继续访问页面的链接。
    想象一下AltaVista访问了一个名叫"Drop Dtabase"的链接会怎么样吧。你可以在http://www.apacheweek.com/features/userauth对Apache的认证方法有一个全面了解。另一个教程在http://deepthought.texsci.edu/protected_dirs.html
    PHP3应该被配置为magic_quotes=on。
    配置
      所有可配置数据都放在config.inc.php3中。

    $cfgServers 数组
      从1.4.2版本开始,phpMyAdmin支持对多个MySQL-server的管理。所以,增加了$cfgServers数组来存放不同服务器的登录信息。$cfgServers[1]["host"]包含了第一个服务器的主机名,$cfgServers[2]["host"]为第二个服务器的主机等,等等。如果你只有一个服务器要管理,可以简单地不去理会其它$cfgServers入口的主机名。

    $cfgServers[n]["port"] 字符串
      第n个MySQL服务器的端口号。缺省值为3300(保留空值)。

    $cfgServers[n]["host"] 字符串
      第n个MySQL服务器的主机名。例如,localhost。

    $cfgServers[n]["adv_auth"] 布尔值
      对这个服务器应该使用基本或是高级认证方式。基本认证方式($adv_auth = false)是普通的老的作法:
    用户名和口令被存在config.inc.php3中。高级认证方式($adv_auth = true)从1.3.0版开始引入,允许你通过HTTP-Auth来作为合法的MySQL的用户进行登录。在config.inc中你只需要提供一个标准用户,他能够连接到MySQL上并且可以读出mysql库的user/db表(看$cfgServers[n]["stduser"])。

    推荐使用高级方式管理的场合:

    当phpMyAdmin运行在多用户环境下,人们拥有shell处理权限时,你不想知道MySQL的用户名/口令。
    当你想让用户存取他们自已的数据库,并且不想他们干扰其他人。
      高级认证方式是安全的,因为标准用户只需要对mysql库的只读权限。MySQL口令不能被容易的破解,所以对于一个普通用户没有机会看到其它用户的明文口令。

    $cfgServers[n]["user"] 字符串
    $cfgServers[n]["password"] 字符串
      当使用基本认证方式时,phpMyAdmin将使用用户名/口令对同这个MySQL服务器连接。当使用高级认证方式时则不需要。

    $cfgServers[n]["stduser"] 字符串
    $cfgServers[n]["stdpass"] 字符串
      当使用高级认证方式时,用户名/口令对被用于校验真正的用户名/口令对。这个用户必须能够连接MySQL,而且可以读取mysql库的user表。当使用基本认证方式时则不需要。

    $cfgServers[n]["only_db"] 字符串
      如果设置了一个数据库名,只有这个数据库将显示给用户。

    $cfgServers[n]["verbose"] 字符串
      只有在多服务器入口时使用phpMyAdmin才有用。如果设置了,这个字符串将被显示出来,用来代替在主页面中的下接菜单中的主机名。例如,如果你想在系统只显示某些数据库,这个可能就有用了。


    $cfgManualBase 字符串
      如果设为一个URL(它指向MySQL文档),就会创建相应的帮助链接。


    $cfgPersistentConnections 布尔值
      是否使用持续连接(mysql_connect或mysql_pconnect)。

    $cfgConfirm 布尔值
      当你将要丢失数据时是否应该显示一个警告信息("你真的确定要...")。

    $cfgMaxRows 整数
      当浏览一个结果集时显示的记录数。如果结果集包含了更多的数据,将显示前页/后页的链接。

    $cfgMaxInputsize 整数
      当向一个表增加一条新的记录时,编辑字段的大小。

    $cfgBorder 整数
      表格边界的大小。

    $cfgThBgcolor 字符串 [HTML 颜色]
      用在表头的颜色。

    $cfgBgcolorOne 字符串 [HTML 颜色]
      表格行第一行的颜色。

    $cfgBgcolorTwo 字符串 [HTML 颜色]
      表格行第二行的颜色。

    $cfgOrder 字符串 ["DESC"|"ASC"]
      定义了当你点击字段名时,字段是以升序("ASC")显示还是以降序("DESC")显示。

    $cfgShowBlob 布尔值
      定义了当浏览一个表的内容时,是否显示BLOB字段。

    $cfgShowSQL 布尔值
      定义了是否显示phpMyAdmin所生成的sql查询语句。

    $cfgColumnTypes 数组
      MySQL列的所有可能的类型。大多数情况下你不需要编辑它。

    $cfgFunctions 数组
      MySQL支持函数的列表。大多数情况下你不需要编辑它。

    $cfgAttributeTypes 数组
      字段可能的属性。大多数情况下你不需要编辑它。

    FAQ - 常见问题
    我不能向表中插入新记录 -- MySQL返回一个SQL错误。

      仔细检查SQL错误。我发现很多的程序员使用了错误的字段类型。普通的错误包括:

    使用VARCHAR没有指定大小
    使用TEXT或BLOB指定了大小
      另外,查看一下MySQL手册中的语法章节以确认你的语法是正确的。

    phpMyAdmin不能连接MySQL。出了什么错?

       或者是PHP安装的问题或者是你的用户名/口令错了。试着编一个小的用了mysql_connect的脚本,看一下是否它能工作。如果不能,那就可能是还没有在PHP中将MySQL的编译进去。

    我不能编辑表的内容,尽管README中说这是phpMyAdmin的一个特色。


      phpMyAdmin只允许编辑拥有主键或唯一键值的表的内容。

    当使用高级认证管理时,phpMyAdmin总是给出"处理禁止(Access denied)"。

    发生可能有几种原因:

    $stduser/$stdpassword不正确。试着关掉$adv_auth,然后使用这个用户名及口令来连接MySQL。
    在登录对话框中指定的用户名/口令是错的。试着用上面同样的方法看一下是否可以工作。
    你已经给phpMyAdmin安装目录建立了安全机制,例如,.htaccess文件。这个可能干扰phpMyAdmin的认证管理,那么把它删除。
    我想对phpMyAdmin的开发提供帮助。我应该如何进行?

    下面的方法对于新的开发者来说是首选的:

    取出在匿名CVS上的当前的CVS:
    cvs -d :pserver:anon@www.htmlwizard.net:/usr/local/cvsroot login
    [Password: phpMyAdmin]
    cvs -d :pserver:anon@www.htmlwizard.net:/usr/local/cvsroot checkout phpMyAdmin
    [这样将创建一个名为phpMyAdmin的新的子目录]
    加入你的东西
    将修改的文件发给我(tar格式或gzip格式) 对CVS树的写权限只授权给有经验的已经对phpMyAdmin作出
    了贡献的开发者。

    另外看一下DEVELOPERS文件。
    有什么好的方法可以让phpMyAdmin更安全对付恶意的攻击?

      这要看你的系统了。如果你正在运行一个无法被其它人使用的服务器,使用web服务器的目录保护绑定就已经足够了(例如,对于Apache你可以使用.htaccess文件)。如果其它的人可以通过telnet存取你的服务器,将MySQL口令以明文形式保存在你的config.inc.php3 文件中就不是一个好方法了。在这种情况下你应该使用phpMyAdmin的高级认证方式功能。
    如何才能向我的表中插入一个null值呢?

      输入"null"(没有引号)作为字段的的值。这个对于时间戳或自动增加字段特别有用。

    我是一个ISP供应商。我可以安装一个主控的phpMyAdmin拷贝吗?或需要为每一个客户都安装一个?

       从2.0.3版本开始,你可以安装一个主控的phpMyAdmin拷贝为你的所有的用户。这个特性的开发是由NetCologne GmbH倡议的。这样就要求合理地设置MySQL用户,并且设置phpMyAdmin的高级认证方式。当认证一个用户时,phpMyAdmin执行这些步骤:

    从mysql.user表中选出所有用户名/口令与申请用户相匹配的记录。如果没有记录被返回,认证失败。
    否则,phpMyAdmin继续第2步。
    如果用户的global Select_Priv是"N"(也就是用户不允许存取所有的数据库),phpMyAdmin搜索mysql.db表,查找对于这个用户的Select_Priv="Y"的记录。如果没有记录被找到,认证失败。否则,phpMyAdmin显示所有允许用户查看的数据库。
    如果用户的global Select_Priv是"Y",系统中所有的数据库都显示出来。

      这就意味着你需要向mysql库中如下增加用户:

    INSERT INTO user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv) VALUES ("localhost", "foo", PASSWORD("bar"), "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N", "N")
    INSERT INTO db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Grant_priv, References_priv, Index_priv, Alter_priv) VALUES ("localhost", "foo_db", "foo", "Y", "Y", "Y", "Y", "Y", "Y", "", "", "", "")

      那样,对于用户foo,只有"foo_db"库将被显
  • 相关阅读:
    JavaScript cookie详解
    Javascript数组的排序:sort()方法和reverse()方法
    javascript中write( ) 和 writeln( )的区别
    div做表格
    JS 盒模型 scrollLeft, scrollWidth, clientWidth, offsetWidth 详解
    Job for phpfpm.service failed because the control process exited with error code. See "systemctl status phpfpm.service" and "journalctl xe" for details.
    orm查询存在价格为空问题
    利用救援模式破解系统密码
    SSH服务拒绝了密码
    C# 调用 C++ DLL 中的委托,引发“对XXX::Invoke类型的已垃圾回收委托进行了回调”错误的解决办法
  • 原文地址:https://www.cnblogs.com/MaxIE/p/1243553.html
Copyright © 2011-2022 走看看