MySQL用户管理

一、root用户密码的维护:

由于安装MySQL完后,MySQL会自动提供一个不带密码的root用户,为了安全起见给root设置密码:

#mysqladmin -u root password 123 (123为密码,也可以写成:’123’或”123″) ;

设置密码后登入时就不能直接输入mysql了,必须跟些参数了,如下:

[root@localhost ~]# mysql -u root -p (-u 后跟登入的用户名,-p 提示要密码登入)
Enter password:(输入密码)

修改密码:

[root@localhost ~] #mysqladmin -u root -p password 123456 (password 后跟的是要更新的新密码)
Enter password:(输入原始密码,回车即可)

二、其他用户的增加和删除:

以root用户登入,在mysql中有一张mysql.user表是存储MySQL中所有用户的信息表,所以可以直接增加删除这个表的记录就可增加和删除用户;

1.添加用户(有两种形式):

A.mysql> grant all on *.* to yushan@”%” identified by “123” ;
mysql>flush privileges; (刷新系统权限表)
(执行完会在mysql.user表插入一条记录,all表示所有权限(包括增 删 改 查等权限), *.* 表示所有数据库,yushan为添加的用户名,123为密码,%为匹配的所有主机,上面的信息都可以指定如grant select,update on db.* to yushan@localhost identified by ‘123″;)

B.直接对mysql.user添加一条记录

mysql> insert into mysql.user(Host,User,Password) values(“localhost”,”yusuhan”,password(“123″));
mysql>flush privileges;
这样就创建了一个名为:yushan 密码为:123 (密码是经过加密的 ) 的用户,不过这样没有权限因为只添加了三个字段,也可通过grant添 加权限:

mysql>grant all on *.* to yushan@localhost identified by ‘123”;
mysql>flush privileges;(刷新系统权限表)

(这种好像有点啰嗦了。直接用grant不久得了)

添加完用户 如果要远程登入MySQL,必须跟上主机Ip 如下:

[root@localhost ~]# mysql -u yushan -p -h 192.168.59.123
Enter password:(输入密码)

2.删除用户 :

mysql>delete from mysql.user where user =’yushan’ ;

mysql>flush privileges; (刷新系统权限表)

其他用户的密码修改与root的一样,在这里无论是添加或是删除操作后必须来个flush privileges;这样才能起作用特别是删除用户后,如果未执行,被删除的用户还可登入,以上都是在MySQL root用户下操作,为了MySQL的安全,应该给用户指定相应的权限

转载自:http://www.cnblogs.com/blong880123/archive/2011/11/30/2269451.html

Zend Framework 2学习资料和网站汇总

本文整理并汇总了Zend Framework 2的相关资料,不断更新,欢迎补充。

ZF2官方

国内大牛

GitHub一些常用的ZF2模块

集成Doctrine ORM到ZF2项目中

ZF2默认没有集成ORM框架,集成Doctrine Orm是个不错的选择。网上的英文教程不少,刚开始使用的时候,对ZF2的各种机制都不是很熟悉,安装和配置非常生硬。看了一段时间官方文档之后,逐步对配置的含义各方面有了新的了解。这里把能够理解到的东西都记录下来,仅供参考。

安装Doctrine Orm

依然是通过composer来安装,进入ZF2项目的根目录,运行如下命令。

php composer.phar require doctrine/doctrine-orm-module

该命令会自动安装doctrine极其依赖的一些模块,安装过程可能需要一段时间,因为需要从网络上下载,过程如下图所示。安装完成之后,可以在vendor目录下找到新创建的doctrine目录,里边包含了刚刚安装的内容。

zf2-doctrine

ZF2的Doctrine Orm项目的资料

ZF2的Doctrine在github上有托管,可以通过下面这个链接找到,里边也提到了安装和配置的方法。

https://github.com/doctrine/DoctrineORMModule

另外一个资料也非常不错,直接以幻灯片的形式展示了安装和简单的使用方式。

http://marco-pivetta.com/doctrine-orm-zf2-tutorial/

完成的使用方法,请参考doctrine官方网站文档。

http://www.doctrine-project.org/

通过Composer创建一个基础的ZF2项目

最近在开发一款订单管理系统,能够整合多个平台的订单进行管理。考虑到Magento以后肯定也会转到ZF2框架,就选择了该框架作为以后的主力开发框架。以前也有使用过Cakephp,这两个框架完全不是一个级别的。ZF2的上手难度相当高,是一款配置型的PHP框架。包含了很多PHP的新特性(DI),加入了很多之前框架中没有遇到的模块如Service、Module、Event等等。

ZF2自己也是个新手,需要一点一点的学习该框架,后续所有的内容都是基于使用过程中的经验总结。很多地方都是参考ZF2的官方文档。英语好的朋友可以直接参考ZF2的官方网址。另外,因为现在的PHP框架,广泛应用了其它面向对象语言成熟的设计模式,为了方便理解ZF2中的一些设计思想,推荐一本PHP的设计模式的书《深入PHP:面向对象、模式与实践(第3版)》,我也正在看,很不错,虽然很难,慢慢琢磨也蛮有意思的,一起进步吧。

关于Composer

Composer是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。

具体可以参考网站http://www.phpcomposer.com/

通过Composer创建一个基础的ZF2项目

首先需要系统已经安装了Github客户端,通过Github Shell,可以在Windows中使用不少Linux命令,非常方便。本地的系统根目录为E盘的htdocs,通过gitshell,进入htdocs目录,运行如下命令。

git clone git://github.com/zendframework/ZendSkeletonApplication.git
cd ZendSkeletonApplication
php composer.phar self-update
php composer.phar install

上述命令中,系统克隆ZF2在git中的项目最新代码,系统会自动为你创建ZendSkeletonApplication目录,该目录可以根据你的需要调整项目名称。进入该目录后,首先升级项目composer.phar,然后运行安装。非常简单,一个基础的ZF2项目创建成功了。安卓之后,访问URL(这里配置Apache的文件可以在官方文档中找到),可以看到如下页面。

zf2

Magento Soap Api接口出错无法使用

在给客户测试Magento Soap接口的时候出现如下错误提示。

This page contains the following errors:
error on line 3 at column 6: XML declaration allowed only at the start of the document
Below is a rendering of the page up to the first error.

字面意思是在XML文件前出现了不该用的其它字符。在浏览器中访问页面api/v2_soap/?wsdl。在xml文件中,发现前面两行为空行,而能够正常访问的api都没有这两个空行,想到应该是这里出现的问题。在调试中发现,无法访问的API程序,曾经修改过index.php文件,正好有<?php标签之前有两行空行,删除之后即可正常调用API。

Magento Soap接口无法调用
Magento Soap接口无法调用

Magento后台表单字段添加备注

Magento的后台表单封装的非常好,各种字段都能够直接找到方法调用。在最近的一个项目中,为客户定制了一款定时变价功能,该功能需要导入一个csv作为变价的基础。为了方便客户,我们需要在上传表单位置添加一个备注,让客户可以直接在备注中点击链接下载到该csv文件的模板。

如下图所示,

Magento后台表单添加备注

在上图中,有“下载导入文件模板”字段,可以通过如下代码实现。

$fieldset->addField('import_file', 'file', array(
    'name' => 'import_file',
    'label' => $helper->__('选择要导入的文件'),
    'title' => $helper->__('选择要导入的文件'),
    'required' => true,
    'after_element_html' => '<small><a>下载导入文件模板</a></small>',
 ));

Centos 6.3添加vsftpd用户并限定访问目录

上一篇文章中写到了如何在Centos 6.3安装vsftpd,这次我们要创建一个ftp用户,允许用户通过ftp访问到服务器的某个固定文件夹,本例以ruiwant用户,magento文件夹为例。

首先通过如下方式创建一个linux系统用户。

useradd ruiwant

passwd ruiwant

通过上述方式,我们即可创建名为ruiwant的系统用户了。注意在输入passwd ruiwant这条命令之后,系统会让你输入密码,两次一致的话则使用改密码作为ruiwant用户访问系统的密码凭证。

熟悉linux的朋友应该知道,通过这种方式创建的用户,会拥有ssh访问权限,一般我们需要禁用ftp用户访问ssh。通过如下方式可以禁止。

usermod -s /sbin/nologin ruiwant

然后,同样通过usermod命令,我们为用户限定可以访问的目录。

usermod -d /var/www/html/magento/ ruiwant

通过如上方式,我们即创建了ruiwant的ftp用户,禁止其登录ssh,并限定其访问目录为/var/www/html/magento/。

Centos 6.3安装vsftpd

vsftpd非常安全的FTP,用起来效果也非常不错。首先运行如下命令,在服务器中安装ftp服务。

yum install vsftpd

系统会为你完成所有安装操作。如果一切就绪的话,可以进行FTP的系统配置。vsftpd默认的配置文件路径如下。

vi /etc/vsftpd/vsftpd.conf

主要修改的配置主要有以下几点。

//禁止匿名用户登录
anonymous_enable=NO

//禁止用户访问未授权目录
chroot_local_user=YES

完成配置后,重启vsftpd服务,并添加到自启动服务。

service vsftpd restart

chkconfig vsftpd on

Magento判断当前访问页面是否为首页

在Magento的页面制作中,我们经常需要判断当前页面是否为首页,来确实是否加在一些信息。如果直接下载模版文件中,大概方式如下。


<?php
$routeName = Mage::app()->getRequest()->getRouteName();
$identifier = Mage::getSingleton('cms/page')->getIdentifier();
?>

<?php if ($routeName == 'cms' && $identifier == 'home') : ?>
    //当前页是首页
<?php else : ?>
    //当前页不是首页
<?php endif ; ?>

这是最简单的方法,并且要注意的是,如果在配置中重新选择了Magento的首页,则需要修改上面代码中的identifier的值。另外,最佳方法是创建一个核心模块,把最常用的方法写进去。这里就可以写在一个Helper类中,后面可以供所有页面和类文件中随时调用。

获取商品集合的时候过滤虚拟商品

在给客户开发的一个Gift Card插件中,把Magento的虚拟商品作为礼品卡的商品类型。在首页,调用了热卖商品,礼品卡商品也会显示在其中。客户要求不要在热卖商品中显示礼品卡。通过如下代码可以试下。


$collectionNotVirtual = Mage::getResourceModel('catalog/product_collection')
    ->addAttributeToFilter('type_id', array('neq' => 'virtual'));

这个只是排除了虚拟商品,还可以根据其它商品type_id来获取需要的商品集合。