• Mysql On Dreamhost

    by{ guangboo }, published {2009-12-09}, Tag { Dreamhost / dreamhost 优惠码 / MySQL / }

    参考:http://wiki.dreamhost.com/Migreate_MySQL
    MySQL是一款多用户数据库系统,它是在GNU公共许可证(GPL)下发布的,是由SUN所有和发起的。
    现在所以在Dreamhost上新创建的数据库都是使用MySQL 5.0,以前的数据库仍然运行在MySQL4.1版本下(现在,你可以通过email支持,来要求升级你的数据库系统)。
    Dreamhost使用phpMyAdmin,使用PHP编写的基于WEB开源工具,来管理MySQL。
    主要内容

    1. Dreamhost上创建MySQL数据库;
    2. 连接数据库

    2.1 使用Shell账户连接
    2.2 使用自己域下Dreamhost PhpMyAdmin工具
    2.3 使用第三方程序
    2.4 通过SSH通道连接的第三方程序
    2.4.1 使用Putty v0.60
    2.4.2 使用SSH
    2.4.3 使用SQLyog
    2.4.4 使用Sequel Pro

    Dreamhost创建MySQL数据库

    登陆控制面板,选择“Goodies”选项卡,单击MySQL。
    在页面底部有一个表单,你可以输入一些信息来创建新的数据库。
    Image:Mysql-newdbase.png
    Database Name – 数据库名称,名称必须是字母,数字及$,_符合组成,并且必须在整个系统中是唯一的。(你可以考虑采用yourwebid_dbname的命名方式)
    Use Hostname – 你要通过子域来访问数据库,选择一个先有的主机名,或创建一个,你可以使用你的任何子域来访问你的任何数据库。
    First User – 为数据库选择初始用户,或创建一个新用户。
    New Username – 当创建用户名的时候,输入唯一的用户访问MySQL数据库的用户名(它同上面的Database Name一样,都是必须填写的)。
    New Password – 用户登陆MySQL的密码。
    Database Comment – 你账户下数据库的描述。
    点击“Add New Database Now!”。

    连接数据库

    使用Shell账户连接:

    1. 登录Dreamhost账户:
    ssh -l yourlogin www.yourdomain.com
    1. 登录MySQL数据库,你可以在控制面板下,“Goodies”/“MySQL”下拷贝/黏贴准确的数据库语法。
    mysql -u yourdblogin -p -h yourdbdomain.yourdomain.com yourdb
    1. 你还可以在命令行下包含密码(注意,在-p后没有空格)。
    mysql -u yourdblogin -pyourdbpassword -h yourdbdomain.yourdomain.com yourdb
    1. 你不可以使用“locahost”连接数据库,因为Dreamhost的MySQL服务器是和网站服务器分开的。

    使用域名访问Dreamhost的PhpMyAdmin来访问数据库
    一旦你所有的数据库主机名在DNS系统中,那么你就可以通过web上指向数据库主机名的PhpMyAdmin系统来访问你的数据库。例如,如果你的MySQL主机名为mysql.yourdomain.tid,在浏览器中输入http://mysql.yourdomain.tid,你就会被提示输入MySQL的用户名和密码。然而要注意的是,这是不安全的!你数据库的用户名和密码是以明文形式传输的,很容易被嗅到,你更应该使用前面的方法。
    第三方程序连接MySQL数据库
    使用第三放工具如MySQL Administrator连接远程MySQL数据库,你必须首先赋予本地机器连接远程数据库服务器的权限。在所以MySQL用户账户从本地机器进行登陆的时候都必须这样做。

    1. 登陆Dreamhost 控制面板
    2. 选择Goodies下的Manage MySQL
    3. 在server节Database(s)下面,找到需要的数据库,然后单击你希望授权访问的username
    4. 在标题为Allowable Hosts节下,在域或子域中标记本地机器身份为在公网访问内,按照网页上描述的格式,你会需要你的公网IP地址或公共的域名或子域名(就像rr.com,midspring.com,Comcast.com等)。

    你的公网IP地址,可以到“什么是我的IP”查看(你的IP也只显示在域名下面“Your current computer is:”后面的文本框中,只有剪切、黏贴一下默认值)。注意,启用%.example.com不会启用example.com自身。

    1. 单击Modify [username] now!按钮。
    2. 启用你的第三方程序,输入数据库和登录信息,进行连接。
    3. 使用Microsoft Access进行连接时有特别之处,参考资料

    如何使用Visual Basic连接MySQL
    客户端脚步如何连接MySQL – Ex. Java Applet
    安全SSH通道下使用第三方程序连接MySQL数据库
    使用Putty v0.60
    它可以通过SSH安全通道连接MySQL数据库,它打破了不安全方法,提供了点对点加密,不会将你的MYSQL账户暴露给潜在攻击行为的网络中。
    设置Putty通道,你必须首先开启账户的SSH,操作方法:

    1. 进入控制面板。
    2. 修改你希望授权SSH访问的用户
    3. 勾选Enable ssh/telent框
    4. 确认/bin/bash为shell类型
    5. 单击Save Changes

    然后,下载并运行Putty

    1. 在左边分类树中,单击靠近底部的Tunnels
    2. 在原端口中输入3306
    3. 在相应的输入框中输入mysql数据库地址和端口(如:yourdbdomain.yourdomain.com:3306)
    4. 其他使用默认值(local,auto),单击Add按钮
    5. 单击分类树中的Session
    6. 在Host Name域中输入shell账户地址(如:foo.dreamhost.com)
    7. 确认22端口,SSH协议指定该端口
    8. 输入会话名称,单击Save按钮
    9. 使用新建的会话登陆shell账户
    10. 最下化窗口

    下一步,但看第三方工具,我们用MySQL Administrator工具为例。

    1. 在Server Host下输入localhost(注意:输入你真实的地址(例如:yourdbdomain.yourdomain.com)不其作用,你必须使用localhost)
    2. 输入3306做为端口号
    3. 输入db username和password
    4. 单击OK

    你现在应该已经登录了!
    注意:

    1. 你的Putty会话必须计划,并且你必须通过通道登录来激活。
    2. 如果你正运行本地MySQL数据库,你可能需要为通道分配不同的端口。否则,在通道启用时,你就不能访问本地Mysql连接。操作如下:
    3. 在Putty的Tunnels下的域中输入不同的数字作为端口号(如3307)。
    4. 在MySQL Administrator端口域中输入相同的端口号。注意,你的destination端口必须保持3306,原理是,你将数据发送到3307端口后,数据通过通道发出,然后分流到Dreamhost的3306端口。

    使用SSH
    在~/.ssh/config文件中设置:

    Host your_nickname_for_your_host
    HostName         your_dh_host_name.dreamhost.com
    User             your_shell_account_user_name
    LocalForward     3307 your_full_db_host_name:3306
    

    只要这样进行连接:

    ssh your_nickname_for_your_host
    mysql -h 127.0.0.1 -P 3307 -u db_user_name -p  your_full_db_host_name 

    或使用一条命令:

    ssh -4fNg -L 3307:your_full_db_host_name:3306  your_shell_account_user_name@your_dh_host_name.dreamhost.com 

    这样mysql就连接上了。
    注意:
    尽管你在Goodies->Manage MySQL中为用户添加了localhost主机,你还是会遇到这样的错误:

    ERROR 1045 (28000): Access denied for user  'db_user_name'@'localhost' (using password: YES) 

    使用127.0.0.1来代替localhost(会被DH拦截)。(感谢Shiva提供该解决方案)
    使用SQLyog
    你可能也想获取免费的SQLyog版本,下面的截图显示了它的配置是多么的简单:
    Image:SQLyog2.jpg
    Image:SQLyog1.jpg
    你也可以尝试Navicat MySQL GUI免费版,你会在SSH和HTTP远程连接中找到使用指南。
    使用Sequel Pro
    MacOS X上,你可以使用开源的Sequel Pro软件来通过SSH连接Dreamhost上的MySQL数据库。

  • Mysql使用Source命令导入数据

    by{ guangboo }, published {2009-10-13}, Tag { MySQL / }
    mysql

    在Dreamhost上备份Mysql数据的方法,见Dreamhost Mysql自动备份,重装系统后,需要将Dreamhost上的数据“拷贝”一份到本地,便于开发和测试。

    方法:

    1. 备份方法参见文章Dreamhost Mysql自动备份

    2. 在master@klipdas.com收件箱里拷贝一份最新的备份到本地,解压,获得.sql文件;

    3.进入mysql控制台;

    4.创建klipdas_test数据库:create database klipdas_test;

    5.source .sql的完整路径(如:D:\TEST\klipdas_data.sql)

    OK!

    这样我就不用使用manage.py命令创建表结构等了。

  • Dreamhost Mysql自动备份

    by{ guangboo }, published {2009-09-08}, Tag { Dreamhost / MySQL / }

    比较网站是架设在Dreamhost托管主机上的,MySQL数据备份是必要的,Dreamhost提供了自动数据备份的方法:

    首先通过putty登陆dreamhost,设登录名为klipdas

    切换到工作目录,创建备份目录:

    cd ~/
    mkdir backups
    cd backups
    mkdir klipdas
    mkdir mysql
    

    切到backups目录,创建mysql.sh脚步:

    cd backups
    vi mysql.sh
    
    #!/bin/bash
    cd /home/klipdas/backups/
    suffix=$(date +%Y%m%d)
    mysqldump --opt -uUser -pPass -h mysql.klipdas.com klipdas_database> mysql/klipdas_database.$suffix.sql #User为数据库用户名,Pass为数据库用户密码,mysql.klipdas.com为数据库地址,klipdas_database为数据库名,请根据自行情况修改。
    tar zcf klipdas/mysql_backup.$suffix.tar.gz mysql/*
    rm -r mysql/
    mutt master@klipdas.com -a /home/klipdas/backups/klipdas/mysql_backup.$suffix.tar.gz -s "Klipdas MySQL Backup" #master@klipdas.com 修改为你准备用于收取备份压缩包的邮箱。

    保存文件,修改权限:

    dos2unix mysql.sh
    chmod 755 mysql.sh

    然后设置Dreamhost,如图1,图2,进入Cron Jobs:

    Dreamhost Goodies Cron Jobs

    图1,Dreamhost >Goodies>Cron Jobs

    Dreamhost Cron jobs

    图2 Dreamhost Cron jobs

    点击“Add New Cron job”,进入图3,添加Cron job:

    Dreamhost Add New Cron job

    图3 Add new cron job

    在Command to run添加/home/klipdas/backups/mysql.sh,根据自己的实际情况填写。 "When to run"设置执行的频率。

    OK!静等Dreamhost主机为我们备份MySQL数据库把。

    你可以先设置频率为hourly,测试是否真的执行或执行成功了,如果上面填写的email:master@klipdas.com收到:

    sh: /home/klipdas/backups/mysql.sh: Permission denied
    这样的邮件,说明mysql.sh的权限没有设置
    如果收到
    date: extra operand `%Y%m%d'
    Try `date --help' for more information.
    Can't stat /home/klipdas/backups/klipdas/mysql_backup..tar: No such file or directory
    /home/klipdas/backups/klipdas/mysql_backup..tar: unable to attach file.
    
    说明,mysql.sh中的 mysqlsuffix=$(date +%Y%m%d)
    设置有问题,+%Y%m%d, “+”和“%”没有空格。
  • Dreamhost域名过期如何获取原Mysql数据

    by{ guangboo }, published {2009-09-08}, Tag { Dreamhost / MySQL / }

    原来www.ge-packer.com网站是架设在dreamhost上的,是使用www.greenenergypacker.com域名的,后来因域名太长,故换成了ge-packer.com,原来的mysql数据库是使用mysql.greenenergypacker.com的,换域名的时候还是保留,没有修改数据库设置,现在greenenergypacker.com域名过期了,使得mysql.greenenergypacker.com也就访问不了了。

    那么在Dreamhost架设网站的时候,如果获取已经过期域名下面的数据呢?我也是试着摸索的,并给Dreamhost support发了邮件进行询问,回复是:“

    -Hostnames are interchangeable, so you can use any hostname listed on the
    MySQL Databases page:

    https://panel.dreamhost.com/index.cgi?tree=goodies.mysql&

    Also you can add a hostname for one of our active domains/registrations

    虽然这段e文看明白了,但是对如何操作还是一无所知。下面是我的尝试,居然成功了。步骤如下:

    1. 安装Dreamhost的回复:进入https://panel.dreamhost.com/index.cgi?tree=goodies.mysql&,图1

    图1 Goodies>MySQL Databases

    MySQL Databases界面,图2:

    Dreamhost panel Goodies MySQL Databases

    图2 Dreamhost panel > Goodies>mysql databases

    在右边点击“Add New Hostname”,添加一个mysql的主机,图3:

    Dreamhost panel 添加mysql主机

    图3 Dreamhost panel 添加mysql主机

    添加好后,登陆mysql.ge-packer.com.com,OK,居然发现了原来的数据库。这难道就是Dreamhost support所说的“Hostnames are interchangeable”,很神奇,但又搞不懂。

  • 批处理文件开启Mysql服务

    by{ guangboo }, published {2009-08-23}, Tag { Django / MySQL / }
    @echo off
    
    @ECHO Starting MySQL Service
    
    sc config MySQL start=demand password=guangboo
    sc start MySQL
    
    @ECHO ========================================
    
    @ECHO == Start MySQL Service Successfully!  ==
    
    @ECHO ========================================
    @ECHO Starting Klipdas app.
    
    cd "C:\Documents and Settings\Administrator\klipdas"
    manage.py runserver 8080

    打开记事本,输入上面的代码,保存为.bat文件。双击就会允许了:该批处理文件用户将mysql服务设为手动,然后启动该服务;之后再使用DOS命令进入C:\Documents and Settings\Administrator\klipdas目录,允许manage.py runserver 8080命令,就是开启klipdas应用的django测试服务器。

    这样就不用每次要打开mysql服务,然后在命令行里敲这些代码了

    cd "C:\Documents and Settings\Administrator\klipdas"
    manage.py runserver 8080

    批处理文件开启MySQL服务 运行结果截图