-
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。
主要内容- Dreamhost上创建MySQL数据库;
- 连接数据库
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 ProDreamhost创建MySQL数据库
登陆控制面板,选择“Goodies”选项卡,单击MySQL。
在页面底部有一个表单,你可以输入一些信息来创建新的数据库。

Database Name – 数据库名称,名称必须是字母,数字及$,_符合组成,并且必须在整个系统中是唯一的。(你可以考虑采用yourwebid_dbname的命名方式)
Use Hostname – 你要通过子域来访问数据库,选择一个先有的主机名,或创建一个,你可以使用你的任何子域来访问你的任何数据库。
First User – 为数据库选择初始用户,或创建一个新用户。
New Username – 当创建用户名的时候,输入唯一的用户访问MySQL数据库的用户名(它同上面的Database Name一样,都是必须填写的)。
New Password – 用户登陆MySQL的密码。
Database Comment – 你账户下数据库的描述。
点击“Add New Database Now!”。连接数据库
使用Shell账户连接:
- 登录Dreamhost账户:
ssh -l yourlogin www.yourdomain.com
- 登录MySQL数据库,你可以在控制面板下,“Goodies”/“MySQL”下拷贝/黏贴准确的数据库语法。
mysql -u yourdblogin -p -h yourdbdomain.yourdomain.com yourdb
- 你还可以在命令行下包含密码(注意,在-p后没有空格)。
mysql -u yourdblogin -pyourdbpassword -h yourdbdomain.yourdomain.com yourdb
- 你不可以使用“locahost”连接数据库,因为Dreamhost的MySQL服务器是和网站服务器分开的。
使用域名访问Dreamhost的PhpMyAdmin来访问数据库
一旦你所有的数据库主机名在DNS系统中,那么你就可以通过web上指向数据库主机名的PhpMyAdmin系统来访问你的数据库。例如,如果你的MySQL主机名为mysql.yourdomain.tid,在浏览器中输入http://mysql.yourdomain.tid,你就会被提示输入MySQL的用户名和密码。然而要注意的是,这是不安全的!你数据库的用户名和密码是以明文形式传输的,很容易被嗅到,你更应该使用前面的方法。
第三方程序连接MySQL数据库
使用第三放工具如MySQL Administrator连接远程MySQL数据库,你必须首先赋予本地机器连接远程数据库服务器的权限。在所以MySQL用户账户从本地机器进行登陆的时候都必须这样做。- 登陆Dreamhost 控制面板
- 选择Goodies下的Manage MySQL
- 在server节Database(s)下面,找到需要的数据库,然后单击你希望授权访问的username
- 在标题为Allowable Hosts节下,在域或子域中标记本地机器身份为在公网访问内,按照网页上描述的格式,你会需要你的公网IP地址或公共的域名或子域名(就像rr.com,midspring.com,Comcast.com等)。
你的公网IP地址,可以到“什么是我的IP”查看(你的IP也只显示在域名下面“Your current computer is:”后面的文本框中,只有剪切、黏贴一下默认值)。注意,启用%.example.com不会启用example.com自身。
- 单击Modify [username] now!按钮。
- 启用你的第三方程序,输入数据库和登录信息,进行连接。
- 使用Microsoft Access进行连接时有特别之处,参考资料。
如何使用Visual Basic连接MySQL
客户端脚步如何连接MySQL – Ex. Java Applet
安全SSH通道下使用第三方程序连接MySQL数据库
使用Putty v0.60
它可以通过SSH安全通道连接MySQL数据库,它打破了不安全方法,提供了点对点加密,不会将你的MYSQL账户暴露给潜在攻击行为的网络中。
设置Putty通道,你必须首先开启账户的SSH,操作方法:- 进入控制面板。
- 修改你希望授权SSH访问的用户
- 勾选Enable ssh/telent框
- 确认/bin/bash为shell类型
- 单击Save Changes
然后,下载并运行Putty。
- 在左边分类树中,单击靠近底部的Tunnels
- 在原端口中输入3306
- 在相应的输入框中输入mysql数据库地址和端口(如:yourdbdomain.yourdomain.com:3306)
- 其他使用默认值(local,auto),单击Add按钮
- 单击分类树中的Session
- 在Host Name域中输入shell账户地址(如:foo.dreamhost.com)
- 确认22端口,SSH协议指定该端口
- 输入会话名称,单击Save按钮
- 使用新建的会话登陆shell账户
- 最下化窗口
下一步,但看第三方工具,我们用MySQL Administrator工具为例。
- 在Server Host下输入localhost(注意:输入你真实的地址(例如:yourdbdomain.yourdomain.com)不其作用,你必须使用localhost)
- 输入3306做为端口号
- 输入db username和password
- 单击OK
你现在应该已经登录了!
注意:- 你的Putty会话必须计划,并且你必须通过通道登录来激活。
- 如果你正运行本地MySQL数据库,你可能需要为通道分配不同的端口。否则,在通道启用时,你就不能访问本地Mysql连接。操作如下:
- 在Putty的Tunnels下的域中输入不同的数字作为端口号(如3307)。
- 在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版本,下面的截图显示了它的配置是多么的简单:


你也可以尝试Navicat MySQL GUI免费版,你会在SSH和HTTP远程连接中找到使用指南。
使用Sequel Pro
MacOS X上,你可以使用开源的Sequel Pro软件来通过SSH连接Dreamhost上的MySQL数据库。 -
Mysql使用Source命令导入数据
by{ guangboo }, published {2009-10-13}, Tag { 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:

图1,Dreamhost >Goodies>Cron Jobs

图2 Dreamhost Cron jobs
点击“Add New Cron job”,进入图3,添加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:

图2 Dreamhost panel > Goodies>mysql databases
在右边点击“Add New Hostname”,添加一个mysql的主机,图3:

图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
