2011年9月

U盘安装rhel 5.5

今天成功在DELL Optiplex 360上安装rhel 5.5,记录如下,具体步骤不是很清晰了,所以步骤不是很详细。

  1. 下载rhel 5.5 (http://mirrors.sohu.com/RHEL/AS5U5/i386/rhel-server-5.5-i386-dvd.iso),选择适合你的版本有i386、x86_64。
  2. 使用UltraISO打开rhel-server-5.5-i386-dvd.iso里面的images/boot.iso文件。点UltraISO【启动】菜单,【写入硬盘映像...】,写入方式可以是USB-HDD或者USB-HDD+。点【写入】。boot.iso包含了我们启动所需要的两个关键文件:isolinux/vmlinuz和isolinux/initrd.img。
  3. 复制rhel-server-5.5-i386-dvd.iso到U盘根目录。
  4. 重启系统,F12(有些机器不一样)进入选择启动介质界面。选择USB device。就启动到了linux rescue模式。有多种方式供我们选择,输入linux askmethod,回车。
  5. 接下来就是选择语言,键盘布局,然后接下来是最关键是选择安装方式,有NFS/CDROME/HardDisk/FTP/HTTP。选择HardDisk。然后列出来很多分区供我们选择(/dev/sda1,/dev/sda2,/dev/sda3,/dev/sdb4),一般sda指硬盘,sdb是我们插上去的u盘。选择/dev/sdb4,就查找到u盘上的iso镜像。接下来是分区,设置密码、防火墙、SELinux、网卡配置、选择软件包等。。这些不详讲。关键一步,选择grub安装在那个地方,默认只有/dev/sdb,不能安装grub到u盘,否则u盘grub被覆盖了就完蛋鸟。选择no boot loader will be installed。等待安装完成。
  6. 安装完了,继续F12进u盘,输入chroot /mnt/sysimage,挂载root分区。
  7. fdisk -l 查看继续上的分区情况。一般有swap,根分区,/boot分区等。假设硬盘是/dev/sda,u盘是/dev/sdb。、dev/sda1是/boot,dev/sda2是/,dev/sda3是swap。

    grub-install /dev/sda
    grub> find /grub/stage1   (或者/boot/grub/stage1)
    grub> root (hd0,0)   (这个是/boot分区,对应/boot,如果没有单独划分/boot分区,这里root指定/分区)
    grub> setup (hd0)
    grub> quit
    
  8. 这样grub就安装在硬盘上了,还需要新建一个grub菜单。

    vi /boot/grub/grub.conf

    default=0
    timeout=5
    splashimage=(hd0,0)/grub/splash.xpm.gz
    title rhel 5.5
    root (hd0,0)
    kernel /vmlinuz-2.6.18-194.el5PAE ro root=LABEL=/ rhgb quiet
    initrd /initrd-2.6.18-194.el5PAE.img
    
  9. 修改权限:

    chmod 600 /boot/grub/grub.conf

    软链接:

    ln -s /boot/grub/grub.conf /boot/grub/menu.lst

  10. 第一次启动后的设置,不详讲。

 

mysql去掉隐藏的换行符号

update tb1 set test1= replace(test1 ,"\n\r","")
update tb1 set test1= replace(test1 ,"\n","")
update tb1 set test1= replace(test1 ,"\r","")

\n也可以是用char(10)代替,\n可以用char(13)代替。winhex下0A0D就是换行。

0A是LF(NL line fee, new line)

0D是CR(carriage return)

如果说有换行,输入被调用到js代码中,js是不会忽略换行的,所以js报错:

google maps api 报错:OVER_QUERY_LIMIT

google maps api 报错:OVER_QUERY_LIMIT

如果你在for循环里面geocode那我劝你还是算了,不要以为google给你提供了免费的/bandwidth/hosting,不要以为google服务器多如牛毛。但是谁受得鸟你这种粗暴的for循环呢?

参考geocoding usage limits 可知限制如下:

Use of the Google Geocoding API is subject to a query limit of 2,500 geolocation requests per day. (User of Google Maps API Premier may perform up to 100,000 requests per day.) This limit is enforced to prevent abuse and/or repurposing of the Geocoding API, and this limit may be changed in the future without notice. Additionally, we enforce a request rate limit to prevent abuse of the service. If you exceed the 24-hour limit or otherwise abuse the service, the Geocoding API may stop working for you temporarily. If you continue to exceed this limit, your access to the Geocoding API may be blocked.

同时参考:geocoding政策,配额限制

解决方法,我们可以将geocode出来的正确的latitude和longtitude都存到我们自己的数据库,下次就直接用google.map.Marker的position指定latitude和longtitude实现。

  • fetch the latitude+longitude, using the geocoder, when a location is created
  • store those in your database, alongside the address
  • and use those stored latitude+longitude when you want to display the map.

或者试试500ms geocode一个:

You can delay 5 seconds between every 10 calls, subject to change. But your page will load much faster if you use the HTTP geocoder before serving your pages.

mysql source命令导入乱码

环境:winxp/mysql 5.5.8

mysql -uroot -pxxxxxx
use testdb;
source d:/www/testdb.sql

导入很慢,每个row,都有6个warnings。

所有中文全部是问号(乱码)

查看了testdb.sql,发现create table语句后面没有设置default charset,

create table `tb1` (
`col1` varchar (45),
)ENGINE=MyISAM DEFAULT CHARSET=utf8; 

成功导入!且速度很快。