1、下载MySQL的安装文件
安装MySQL需要下面两个文件:
MySQL-server-5.0.26-0.i386.rpm
MySQL-client-5.0.26-0.i386.rpm
下载地址为:http://dev.mysql.com/downloads/mysql/5.0.html,打开此网页,下拉网页找到“Red Hat Enterprise Linux 3 RPM (x86) downloads”项,找到“Server”和“Client programs”项,下载需要的上述两个rpm文件。
2、安装MySQL
rpm文件是Red Hat公司开发的软件安装包,rpm可让Linux在安装软件包时免除许多复杂的手续。该命令在安装时常用的参数是 –ivh ,其中i表示将安装指定的rmp软件包,V表示安装时的详细信息,h表示在安装期间出现“#”符号来显示目前的安装过程。这个符号将持续到安装完成后才停止。
1)安装服务器端
在有两个rmp文件的目录下运行如下命令:
[root@test1 local]# rpm -ivh MySQL-server-5.0.26-0.i386.rpm
显示如下信息。
warning: MySQL-server-5.0.26-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
Preparing... ########################################### [100%]
1:MySQL-server ########################################### [100%]
。。。。。。(省略显示)
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h test1 password 'new-password'
。。。。。。(省略显示)
Starting mysqld daemon with databases from /var/lib/mysql
如出现如上信息,服务端安装完毕。测试是否成功可运行netstat看Mysql端口是否打开,如打开表示服务已经启动,安装成功。Mysql默认的端口是3306。
[root@test1 local]# netstat -nat
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
上面显示可以看出MySQL服务已经启动。
2)安装客户端
运行如下命令:
[root@test1 local]# rpm -ivh MySQL-client-5.0.26-0.i386.rpm
warning: MySQL-client-5.0.26-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
Preparing... ########################################### [100%]
1:MySQL-client ########################################### [100%]
显示安装完毕。
用下面的命令连接mysql,测试是否成功。
登录MySQL
登录MySQL的命令是mysql, mysql 的使用语法如下:
mysql [-u username] [-h host] [-p[password]] [dbname]
username 与 password 分别是 MySQL 的用户名与密码,mysql的初始管理帐号是root,没有密码,注意:这个root用户不是Linux的系统
用户。MySQL默认用户是root,由于初始没有密码,第一次进时只需键入mysql即可。
[root@test1 local]# mysql
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 1 to server version: 4.0.16-standard
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql>
出现了“mysql>”提示符,恭喜你,安装成功!
增加了密码后的登录格式如下:
mysql -u root -p
Enter password: (输入密码)
其中-u后跟的是用户名,-p要求输入密码,回车后在输入密码处输入密码。
注意:这个mysql文件在/usr/bin目录下,与后面讲的启动文件/etc/init.d/mysql不是一个文件。
MySQL的几个重要目录
MySQL安装完成后不象SQL Server默认安装在一个目录,它的数据库文件、配置文件和命令文件分别在不同的目录,了解这些目录非常重
要,尤其对于Linux的初学者,因为 Linux本身的目录结构就比较复杂,如果搞不清楚MySQL的安装目录那就无从谈起深入学习。
下面就介绍一下这几个目录。
1、数据库目录
/var/lib/mysql/
2、配置文件
/usr/share/mysql(mysql.server命令及配置文件)
3、相关命令
/usr/bin(mysqladmin mysqldump等命令)
4、启动脚本
/etc/rc.d/init.d/(启动脚本文件mysql的目录)
修改登录密码
MySQL默认没有密码,安装完毕增加密码的重要性是不言而喻的。
1、命令
usr/bin/mysqladmin -u root password 'new-password'
格式:mysqladmin -u用户名 -p旧密码 password 新密码
2、例子
例1:给root加个密码123456。
键入以下命令 :
[root@test1 local]# /usr/bin/mysqladmin -u root password 123456
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
3、测试是否修改成功
1)不用密码登录
[root@test1 local]# mysql
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)
显示错误,说明密码已经修改。
2)用修改后的密码登录
[root@test1 local]# mysql -u root -p
Enter password: (输入修改后的密码123456)
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 4 to server version: 4.0.16-standard
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql>
成功!
这是通过mysqladmin命令修改口令,也可通过修改库来更改口令。
启动与停止
1、启动
MySQL安装完成后启动文件mysql在/etc/init.d目录下,在需要启动时运行下面命令即可。
[root@test1 init.d]# /etc/init.d/mysql start
2、停止
/usr/bin/mysqladmin -u root -p shutdown
3、自动启动
1)察看mysql是否在自动启动列表中
[root@test1 local]# /sbin/chkconfig –list
2)把MySQL添加到你系统的启动服务组里面去
[root@test1 local]# /sbin/chkconfig – add mysql
3)把MySQL从启动服务组里面删除。
[root@test1 local]# /sbin/chkconfig – del mysql
更改MySQL目录
MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步:
1、home目录下建立data目录
cd /home
mkdir data
2、把MySQL服务进程停掉:
mysqladmin -u root -p shutdown
3、把/var/lib/mysql整个目录移到/home/data
mv /var/lib/mysql /home/data/
这样就把MySQL的数据文件移动到了/home/data/mysql下
4、找到my.cnf配置文件
如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf)中。命令如下:
[root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
5、编辑MySQL的配置文件/etc/my.cnf
为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。 修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值
为:/home/mysql/mysql.sock 。操作如下:
vi my.cnf (用vi工具编辑my.cnf文件,找到下列数据修改之)
# The MySQL server
[mysqld]
port = 3306
#socket = /var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行)
socket = /home/data/mysql/mysql.sock (加上此行)
6、修改MySQL启动脚本/etc/rc.d/init.d/mysql
最后,需要修改MySQL启动脚本/etc/rc.d/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存
放路径:home/data/mysql。
[root@test1 etc]# vi /etc/rc.d/init.d/mysql
#datadir=/var/lib/mysql (注释此行)
datadir=/home/data/mysql (加上此行)
7、重新启动MySQL服务
/etc/rc.d/init.d/mysql start
或用reboot命令重启Linux
如果工作正常移动就成功了,否则对照前面的7步再检查一下。
为了在其它电脑上能用root用户登录,需进行以下动作:
1、mark@marklinux mark>mysql -h localhost -u root
//这样应该可以进入MySQL服务器
2、mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION
//赋予任何主机访问数据的权限
3、mysql>FLUSH PRIVILEGES
//修改生效
4、mysql>EXIT
//退出MySQL服务器
这样就可以在其它任何的主机上以root身份登录啦!
posted @
2010-04-08 11:02 北国狼人的BloG 阅读(146) |
评论 (0) |
编辑 收藏
mysql>use mysql;
mysql>grant all on 数据库名字.* to '远程用户名
'@'远程IP地址' identified by '远程用户的密码';
mysql>flush privileges;
mysql>\q
posted @
2010-04-07 19:02 北国狼人的BloG 阅读(142) |
评论 (0) |
编辑 收藏
http://gamelook.com.cn/
posted @
2010-04-05 16:26 北国狼人的BloG 阅读(145) |
评论 (0) |
编辑 收藏
taskdef flexTask.jar
内存不够用,就是用ANT_OPTS -Xms256m -Xmx512m
posted @
2010-04-05 15:02 北国狼人的BloG 阅读(143) |
评论 (0) |
编辑 收藏
打包 tar czvf static.tar.gz html/*
解压 tar xzvf server.tar.gz
描述
tar 程序用于储存或展开 tar 存档文件。存档文件可放在磁盘中 ,也可以存为普通文件。 tar是需要参数的,可选的参数是A、c、d、r、t、u、x,您在使用tar时必须首先为 tar 指定至少一个参数;然后,您必须指定要处理的文件或目录。如果指定一个目录则该目录下的所有子目录都将被加入存档。
应用举例:
1)展开 abc.tar.gz 使用命令: tar xvzf abc.tar.gz 展开 abc.tar 使用命令: tar xvf abc.tar
2)将当前目录下的 man 目录及其子目录存成存档 man.tar tar cf man.tar ./man
参数说明
运行tar时必须要有下列参数中的至少一个才可运行
-A, --catenate, --concatenate
将一存档与已有的存档合并
-c, --create
建立新的存档
-d, --diff, --compare
比较存档与当前文件的不同之处
--delete
从存档中删除
-r, --append
附加到存档结尾
-t, --list
列出存档中文件的目录
-u, --update
仅将较新的文件附加到存档中
-x, --extract, --get
从存档展开文件
其他参数
--atime-preserve
不改变转储文件的存取时间
-b, --block-size N
指定块大小为 Nx512 字节(缺省时 N=20)
-B, --read-full-blocks
读取时重组块(???!!!)
-C, --directory DIR
转到指定的目录
--checkpoint
读取存档时显示目录名
-f, --file [HOSTNAME:]F
指定存档或设备 (缺省为 /dev/rmt0)
--force-local
强制使用本地存档,即使存在克隆
-F, --info-script F --new-volume-script F
在每个磁盘结尾使用脚本 F (隐含 -M)
-G, --incremental
建立老 GNU 格式的备份
-g, --listed-incremental F
建立新 GNU 格式的备份
-h, --dereference
不转储动态链接,转储动态链接指向的文件。
-i, --ignore-zeros
忽略存档中的 0 字节块(通常意味着文件结束)
--ignore-failed-read
在不可读文件中作 0 标记后再退出???
-k, --keep-old-files
保存现有文件;从存档中展开时不进行覆盖
-K, --starting-file F
从存档文件 F 开始
-l, --one-file-system
在本地文件系统中创建存档
-L, --tape-length N
在写入 N*1024 个字节后暂停,等待更换磁盘
-m, --modification-time
当从一个档案中恢复文件时,不使用新的时间标签
-M, --multi-volume
建立多卷存档,以便在几个磁盘中存放
-N, --after-date DATE, --newer DATE
仅存储时间较新的文件
-o, --old-archive, --portability
以 V7 格式存档,不用 ANSI 格式
-O, --to-stdout
将文件展开到标准输出
-p, --same-permissions, --preserve-permissions
展开所有保护信息
-P, --absolute-paths
不要从文件名中去除 '/'
--preserve
like -p -s
与 -p -s 相似
-R, --record-number
显示信息时同时显示存档中的记录数
--remove-files
建立存档后删除源文件
-s, --same-order, --preserve-order
--same-owner
展开以后使所有文件属于同一所有者
-S, --sparse
高效处理
-T, --files-from F
从文件中得到要展开或要创建的文件名
--null
读取空结束的文件名,使 -C 失效
--totals
显示用 --create 参数写入的总字节数
-v, --verbose
详细显示处理的文件
-V, --label NAME
为存档指定卷标
--version
显示 tar 程序的版本号
-w, --interactive, --confirmation
每个操作都要求确认
-W, --verify
写入存档后进行校验
--exclude FILE
不把指定文件包含在内
-X, --exclude-from FILE
从指定文件中读入不想包含的文件的列表
-y, --bzip2, --bunzip2
用 bzip2 对存档压缩或解压
-Z, --compress, --uncompress
用 compress 对存档压缩或解压
-z, --gzip, --ungzip
用 gzip 对存档压缩或解压
--use-compress-program PROG
用 PROG 对存档压缩或解压 ( PROG 需能接受 -d 参数)
--block-compress
为便于磁盘存储,按块记录存档
-[0-7][lmh]
指定驱动器和密度[高中低]
--------------------------
打包: tar -cf soft.tar soft
解包: tar -xf soft.tar soft
压缩目录
打包压缩:tar czvf usr.tar.gz /home
解压缩:tar xzvf usr.tar.gz
压缩文件(对于目录失效)
压缩:zip good.zip good1 good2
解压:unzip good.zip
posted @
2010-04-02 14:09 北国狼人的BloG 阅读(317) |
评论 (0) |
编辑 收藏
基于MINA框架快速开发网络应用程序
1.MINA框架简介 MINA(Multipurpose Infrastructure for Network Applications)是用于开发高性能和高可用性的网络应用程序的基础框架。
通过使用MINA框架可以可以省下处理底层I/O和线程并发等复杂工作,开发人员能够把更多的精力投入到业务设计和开发当中。
MINA框架的应用比较广泛,应用的开源项目有Apache Directory、AsyncWeb、Apache Qpid、QuickFIX/J、Openfire、SubEthaSTMP、red5等。MINA框架当前稳定版本是1.1.6,最新的2.0版本目前已经发布了M1版本。
MINA框架的特点有:基于java NIO类库开发;采用非阻塞方式的异步传输;事件驱动;支持批量数据传输;支持TCP、UDP协议;控制反转的设计模式(支持Spring);采用优雅的松耦合架构;可灵活的加载过滤器机制;单元测试更容易实现;可自定义线程的数量,以提高运行于多处理器上的性能;采用回调的方式完成调用,线程的使用更容易。
2.MINA框架的常用类 类NioSocketAcceptor用于创建服务端监听; 类NioSocketConnector用于创建客户端连接; 类IoSession用来保存会话属性和发送消息; 类IoHandlerAdapter用于定义业务逻辑,常用的方法有: 方法 定义 sessionCreated() 当会话创建时被触发 sessionOpened() 当会话开始时被触发 sessionClosed() 当会话关闭时被触发 sessionIdle() 当会话空闲时被触发 exceptionCaught() 当接口中其他方法抛出异常未被捕获时触发此方法 messageRecieved() 当接收到消息后被触发 messageSent() 当发送消息后被触发
3.服务端应用开发示例 下面将以MINA2.0M1版本为基础,通过一个范例来演示一下如何使用MINA框架进行开发。开发环境为jdk6.0,开发工具NetBeans6.0,所需jar包slf4j-api.jar、slf4j-jdk14.jar、MINA-core-2.0.0-M1.jar。 首先定义一个业务逻辑处理器TimeServerHandler,继承自IoHandlerAdapter,实现的功能有:当客户端创建会话时会显示客户端设备的IP和端口;当客户端输入quit时结束会话;客户端输入其它内容时则向客户端发送当前时间。
代码如下: public class TimeServerHandler extends IoHandlerAdapter {
@Override
public void sessionCreated(IoSession session) {
//显示客户端的ip和端口
System.out.println(session.getRemoteAddress().toString());
}
@Override
public void messageReceived( IoSession session, Object message ) throws Exception {
String str = message.toString();
if( str.trim().equalsIgnoreCase("quit") )
{
session.close();
//结束会话
return;
}
Date date = new Date();
session.write( date.toString() );
//返回当前时间的字符串
System.out.println("Message written...");
} }
再定义一个类MinaTimeServer用来启动服务端:
public class MinaTimeServer {
private static final int PORT = 9123;
//定义监听端口
public static void main( String[] args ) throws IOException
{
IoAcceptor acceptor = new NioSocketAcceptor();
acceptor.getFilterChain().addLast( "logger", new LoggingFilter() );
acceptor.getFilterChain().addLast( "codec", new ProtocolCodecFilter( new TextLineCodecFactory( Charset.forName( "UTF-8" ))));
//指定编码过滤器
acceptor.setHandler( new TimeServerHandler() );
//指定业务逻辑处理器
acceptor.setDefaultLocalAddress( new InetSocketAddress(PORT) );
//设置端口号 acceptor.bind();
//启动监听
}
}
4.测试
首先运行MinaTimeServer,启动服务端,接着在命令行运行“telnet 127.0.0.1 9123”,
来登录,这时会看到服务端输出如下: 2008-2-21 16:15:29 org.apache.MINA.filter.logging.LogLevel$4 log /10.64.2.137:4140 àIP和端口号
信息: CREATED 2008-2-21 16:15:29 org.apache.MINA.filter.logging.LogLevel$4 log 信息: OPENED 在客户端输入回车,在客户端可以看到服务端返回当前的时间:
Thu Feb 21 16:20:14 CST 2008 服务端输出: 2008-2-21 16:20:14 org.apache.MINA.filter.logging.LogLevel$4 log 信息: RECEIVED: HeapBuffer[pos=0 lim=2 cap=2048: 0D 0A] à接收收到回车符 Message written... 2008-2-21 16:20:14 org.apache.MINA.filter.logging.LogLevel$4 log 信息: SENT: HeapBuffer[pos=0 lim=29 cap=30: 54 68 75 20 46 65 62 20 32 31 20 31 36 3A 32 30...] 2008-2-21 16:20:14 org.apache.MINA.filter.logging.LogLevel$4 log 信息: SENT: HeapBuffer[pos=0 lim=0 cap=0: empty]
5.客户端开发示例 首先定义类TimeClientHandler来处理消息接收事件:
class TimeClientHandler extends IoHandlerAdapter{
public TimeClientHandler() { }
@Override
public void messageReceived(IoSession session, Object message) throws Exception {
System.out.println(message);//显示接收到的消息
}
}
接着定义MinaTimeClient类用于连接服务端,并向服务端发送消息:
public class MinaTimeClient {
public static void main(String[] args) {
// 创建客户端连接器.
NioSocketConnector connector = new NioSocketConnector();
connector.getFilterChain().addLast( "logger", new LoggingFilter() );
connector.getFilterChain().addLast( "codec", new ProtocolCodecFilter( new TextLineCodecFactory( Charset.forName( "UTF-8" )))); //设置编码过滤器 connector.setConnectTimeout(30);
connector.setHandler(new TimeClientHandler());
//设置事件处理器
ConnectFuture cf = connector.connect( new InetSocketAddress("127.0.0.1", 9123));
//建立连接
cf.awaitUninterruptibly();
//等待连接创建完成
cf.getSession().write("hello");
//发送消息
cf.getSession().write("quit");
//发送消息
cf.getSession().getCloseFuture().awaitUninterruptibly();
//等待连接断开
connector.dispose();
}
}
6.总结 通过上述示例可以了解到:使用MINA框架来开发的网络应用程序代码结构更清晰;MINA框架完成了底层的线程管理;MINA内置的编码器可以满足大多数用户的需求,省去了开发人员消息编码解码的工作。具称使用MINA开发服务器程序的性能已经逼近使用 C/C++ 语言开发的网络服务。因此,建议在网络应用程序开发过程中尝试使用MINA框架来提高我们的开发效率和应用程序的执行效率。
posted @
2010-03-31 11:10 北国狼人的BloG 阅读(245) |
评论 (0) |
编辑 收藏
老外的想法做法就是不一样,如果你想在外企工作得好,有些潜规则你最好心里有数。
Unacceptable:
老外打小受的教育是人要以表扬鼓励为主,所以老外批评人比较含蓄。说你这件事办的unacceptable,已经算是说的很重了,中国老板在外企混久了, 也便跟着装逼起来,对你不满,写email给你,左一个unacceptable右一unacceptable。
潜台词相当于:你这个傻逼,你奶奶个熊, 给老子小心点,等等。
CC:
就是Copy。我看email,第一看标题,第二看CC给谁,第三才看内容。CC给谁基本上能够说明对方的态度,CC一大批老板的,肯定不是啥好事,对方要推卸责任。
潜台词:我这件事告诉你了哦,和我没关系了,你自己看着办吧,反正老板都知道?都盯着你呢。 最开心的是看到自己的名字在CC那一栏里面,因为那意味着那就是这封信不用回,看看就可以。有人会回的。
Concern:
中文翻译成”关注”,其实根本不是关注的意思,老外要是说他很concern, 那就是事情不妙,所谓老外打喷嚏,中国人集体感冒。
潜台词:老子很不爽,这事儿怎么这么乱七八糟,给我注意点!
Great:
刚才说了,老外打小受教育要多夸人,少批评人,所以老外一天到晚把”It”s great!”,”you did a great job!” 挂在嘴上,初听还飘飘然了几回,听久了,才知道其实压根儿就是他们口头禅,心里未必觉得你有多 great,同义词还有 fantastic! wonderful! Gorgeous! Fabulous! 等等。
潜台词:还马马虎虎啦,一般般了,还过得去。
F.Y.I:
以前一直以为是forward邮件的时候系统会自动加上这几个字,因为人家转过来的信上都有这三个字母,过了好久才知道是人家自己加的,意思是:For Your Information。看到这几个字母意味着下面内容和我有关,但是关系不大,看看就好。因为对方如果要你采取行动,一定会说清楚:Allen, please……。。而不会只是F.Y.I了事。
潜台词:和你关系不大,给你随便看看。
Issue:
中文翻译成事情,其实是贬义词,准确意思是”不好的事情”,老外说有一个issue,就是有件鸟事要处理。要有很多issue,那就是一团糟。
潜台词:事情不妙,大家都赶快处理。
Aggressive:
中文翻译成”进攻性的”,在外企里面意思含糊,褒义的有”具有开拓精神的”,”有事业心的”,贬义的有”咄咄逼人的”,”喜欢没头脑乱闯的”,”容易得罪别人的”,反正意思可褒可贬,看你自己琢磨。 面试时候说自己”aggressive”的,潜台词是:我可不是那种混日子的人,我是能干事的,招我准没错。 但是一但说别人”very aggressive”,基本上潜台词是说:这傻逼凶巴巴的,不好相处,做事没头没脑,老闯祸…不是啥好鸟。
Involve:
中文翻译成”介入”,反正involve的老板越高层事情就越复杂,director要是involve了,manager就开始紧张,VP要是involve了,中国区相关人员都别想有好日子过,得加班加得四脚朝天。
潜台词:大佬很生气,后果很严重。
RESEND!
重传。
潜台词:有没在上班的呀?还没有答复过来?是不是在混水摸鱼?我的时间很宝贵的,不快点回复你就死定了。
highlight :
强调,意思是说你搞不定一定要提前highlight出来,抗不住就早点讲,一般要highlight的东西都是比较难搞定的。
urgent :
紧急的,遇到这样的urgent的case你就有得麻烦了,电话基本不会停下来,好一阵子的热线。
appreciate :
欣赏。当事情自己解决不了的时候,需要别人帮忙的时候,或者是自己做错事无法挽回的时候,一句yourkindhelpshouldbeappreciated。就会发挥很大的作用 了。
guarantee :
保证,之前promise的东西没有出现,于是再次向别人求助的时候,对方一句Are you guarantee of it?让你很是尴尬,使对方陷入困境。对于sales来讲,此词使用 的几率教高。
myunderstandingis…
翻成中文是我的理解是。
潜台词是,应该是。你的理解有误,我在此再给你解释一下。虽然看上 去是对方在说自己的理解,但基本上是认为你的看法是错的,他的是正确的。
Im very disappointed…
中文是:我很失望。
潜台词是:你怎么搞得,弄成这样。后果有点严重,基本上这个人对你有了 一个很差的印象了。
posted @
2010-03-23 22:02 北国狼人的BloG 阅读(157) |
评论 (0) |
编辑 收藏
dir 后台,把文件,横向排放,并以空格换行
gam.server.jar
mina-core.jar
每行空格长度不同
使用 edit -plus Alt 列选扣出来
使用 Ctrl + H 替换 (空格点星)
( .*) 替换 ,
posted @
2010-03-23 20:35 北国狼人的BloG 阅读(136) |
评论 (0) |
编辑 收藏
Class-Path: ./lib/ant-1.6.5.jar
./lib/ant-junit-1.6.5.jar
注意:换行后前面加两个空格
posted @
2010-03-23 20:30 北国狼人的BloG 阅读(463) |
评论 (0) |
编辑 收藏
http://code.google.com/p/golfzon-flash-library/
posted @
2010-03-23 13:26 北国狼人的BloG 阅读(179) |
评论 (0) |
编辑 收藏