蛙蛙推荐:蛙蛙教你配置linux+mysql+.net环境

 

摘要:.net一般配合sqlserver使用,但mysql在性能和成本上也很有优势,本文介绍如何搭建一个mysql服务器,以及演示如何用.net使用mysql数据库。

一、安装linux
一般PHP环境的最佳组合是LAMP(linux+apache+mysql+php),说明mysql在linux下是最合适的,所以我们先装linux,因为我们在linux下只运行mysql服务,所以选择一个没有x-window的发行版本就行了,最终选择了unbuntu系列的jeos,目前(2008-12-25)最新版本是8.04.1,下载地址如下。
http://cdimage.ubuntu.com/jeos/releases/8.04/release/
jeos是Just enough Operation System的简写,只是一个linux内核加一些主要的控制台工具,没有窗口界面,甚至连telnet和ftp服务也没有,但我们要管理服务器和传文件,必须得装这两个服务。
下载了jeos后,再装一个虚拟机,vpc肯定不行,只能选择ms的操作系统,据说有人选了other装jeos也启动不起来,所以大家不要试了。vmware 5.x有绿色版,大家也不要试了,我试了两宿,装了N遍,死活启不来,那就用vmware6.5版,新建虚拟机的时候选择自定义,然后硬盘选择IDE(第一个选择磁盘适配器的地方IDE适配器不能选择,那里不u用管,下一步创建磁盘的界面选择IDE就可以了),这点一定要注意,否则装完了启不来,我都试过N次了。
新建好虚机后,网卡选择桥接模式,光驱里选择上下载下来的jeos-8.04.1-jeos-i386.iso文件,然后启动虚机,就开始安装了,大概就是以下几个步骤,和装windows差不多。
装之前拔掉网线,切记,因为有一步是在线下载apt列表,默认的apt源在外国,太慢,浪费时间,装好了咱们再设置。
1、选择语言-汉语
2、选择安装
3、键盘检测-选否
4、键盘选择-选english
5、探测硬件,加载额外组件,探测网络硬件-无需人工干扰
6、配置网络,使用DHCP设置IP-因为拔掉网线,肯定获取不到,然后选以后再配置网络
7、请输入主机名-默认叫unbuntu
8、探测磁盘,分区-选择用向导分区,弹出对话框选是,把分区表信息写在引导区
9、安装软件,grup-无需人工干扰
10、新建用户-重复输入两次用户名和密码,我加了个huhao的用户,root当然会自动添加,这个用户是你新加的,平时用这个用户,需要管理员权限的时候再su root
11、安装完成,取出光驱里的ISO文件,重启电脑

以下链接有安装截图等,大家可以看看,它是手工分区,我们不学他,而且他里面没有加新用户的步骤,可能忘了写了。

JeOS安装一瞥
http://forum.ubuntu.org.cn/viewtopic.php?f=103&t=89602&start=0

二、初始化linux环境
重启后出现登陆界面,输入用户名huhao和密码,进去后su root,不知道密码,所以先要用以下命令给root设置上密码
sudo passwd root
回车后输入huhao用户的密码,然后输入两次root的密码就给root设置上密码了,然后用以下命令切换到root用户
su root
回车后输入刚刚设置的密码,linux的目录访问命令和dos差不多,进入某个目录是cd,拷贝是cp,查看目录是ls,ls -l相当于dos的dir,学会这几个常用的命令就可以查看所有文件了。

然后我们设置网络,对应于windows的ipconfig的命令是ifconfig,if是internet face的缩写应该,可以看到有Io和eth0两个网络适配器,其中Io是本地loopback地址,相当于127.0.0.1,eth0是真正的网卡,我们要设置eth0为利用DHCP自动获取IP,网络的配置路径是/etc/network/interfaces,linux下的常用文本编辑器是vi,对应于dos的edit命令,简单说下vi的常用使用方法
vi有三种模式,命令模式是默认的,可以输入一些插入,删除等命令,插入模式就是可以插入字符,试图模式可以选择文本块。在其他模式下按esc键总可以回到命令模式,在命令模式下可以用方向键上下移动光标,如果在abc的b后面加入一个1,成为ab1c,可以把光标定位在b上,然后按a键,然后输入1就行,或者把光标放在c上,按i键,然后ctrl+b上向上翻屏,ctrl+f是向下翻屏,x是删除一个字符,dd是删除一行字符,在命令模式下按v键进入可是模式,然后用方向键可以选择文本块,选择文本块后按y键是复制锁选择的文本,按yy是复制一行,然后把光标输入到新的一行,按shif+p是粘贴,如果在一行的下面新插入一行文本,是按o,还有常用的就是全局查找替换功能,在命令模式下输入:%s /abc/ABC就是把整篇文档的abc替换成ABC,多单词替换我也不会,最后就是输入:wq!是保存退出,输入:q!是不保存退出,输入:w是保存,更多的命令可以查看以下文档,多练习就行,vi很常用。
文件编辑器 vi
http://www.linuxsir.org/main/?q=node/206

都忘了说到哪儿了,我们要配置网卡为自动获取IP,用vi打开/etc/network/interfaces文件,对了,在linux下文件的扩展名不重要,有的文件都没有扩展名,所以不要奇怪,用以下命令打开配置文件。
vi /etc/network/interfaces
打开配置文件的时候一般要用root账户,如果用别的账户用以下命令打开
sudo vi /etc/network/interfaces
更多关于sudo的用法,参考如下链接
Linux操作系统下Sudo命令的使用方法说明
http://www.builder.com.cn/2007/1127/656207.shtml
用上面说的vi的使用方法,最终把文件编辑成如下

auto lo eth0
iface lo inet loopback
iface eth0 inet dhcp

输入:wq!保存退出
用如下命令,重启网卡适配器
sudo /etc/init.d/networking restart
再用ifconfig可以看到eth0获取到了IP,如果获取不到,实在不行重启下虚拟机,当然前提是你的网络里有DHCP服务,然后linux下也有ping命令,你可以ping一下本机,看看能否通,当然你的机器要打开ICMP。

网络搞好了,我们得想办法安装telnet和ftp服务,这些服务jeos默认没带,可以用apt来安装,apt是一种比较快捷的安装软件的方式,具体我也不懂,大概就是从网上自动下载文件,然后打命令就可以安装服务的一个东西,既然要从网上获取东西,肯定得选择个访问速度快的服务器,别看网上说的什么cn99的服务器快,快个P,还我编辑了半天,当时vi还用的不熟练,编辑好了,一个东西也下载不下来,列表都更新不鸟,最后一看,那个域名压根就ping不同,最后我才又换了一组服务器,是杭州的双线服务器,具体帖子如下。
cn99今天连不上了,我又找到一个比较快的源!
http://forum.ubuntu.org.cn/viewtopic.php?f=52&t=158755

apt源的路径是/etc/apt/sources.list,一般配置都在etc/目录下
进入目录并备份
cd /etc/apt
sudo cp sources.list sources.list.backup

然后用vi打开这个文件,把所有东西都删除,最后改成如下样子,注意里面有个单词是是hardy,有的帖子那个位置是gutsy,不要奇怪 ,gutsy是unbuntu 7.xx,hardy是8.04.x

deb http://mirror.lupaworld.com/ubuntu hardy main restricted universe multiverse
deb http://mirror.lupaworld.com/ubuntu hardy-security main restricted universe multiverse
deb http://mirror.lupaworld.com/ubuntu hardy-updates main restricted universe multiverse
deb http://mirror.lupaworld.com/ubuntu hardy-backports main restricted universe multiverse
deb http://mirror.lupaworld.com/ubuntu hardy-proposed main restricted universe multiverse
deb-src http://mirror.lupaworld.com/ubuntu hardy main restricted universe multiverse
deb-src http://mirror.lupaworld.com/ubuntu hardy-security main restricted universe multiverse
deb-src http://mirror.lupaworld.com/ubuntu hardy-updates main restricted universe multiverse
deb-src http://mirror.lupaworld.com/ubuntu hardy-backports main restricted universe multiverse
deb-src http://mirror.lupaworld.com/ubuntu hardy-proposed main restricted universe multiverse

修改完apt源后用如下命令更新本地的apt缓存
sudo apt-get update

更新缓存很快,大约几分钟就O了。
然后安装telnet和Ftp服务,最常见的就是telnetd和ftpd两个软件,用如下命令安装。
sudo apt-get install telnetd
sudo apt-get install ftpd
这两个软件小,下载和安装几分钟就可以了,安装后用netstat -na命令查看,21,23端口都监听了。

在本地机器上,用telnet和ftp命令访问下jeos,可以访问就行了,至此一个能远程管理,并能传送文件的linux服务器就装好了。

以上过程主要参考如下链接
打造属于自己的ubuntu jeos(1)--安装及网络配置
http://www.blogjava.net/aoxj/archive/2008/04/18/194103.html
打造属于自己的ubuntu jeos(2)--安装基本软件及java开发环境
http://www.blogjava.net/aoxj/archive/2008/04/19/194184.html

三、安装配置mysql
有了apt,安装mysql也很简单,下面一个命令搞定
sudo apt-get install mysql-server
mysql服务器大约有100多M,不过咱们的源的速度快,每秒100多K,我洗了澡出来就装好了,中间需要输入mysql root账户的密码,别的啥也不用管,因为我们架设的是服务器,所以只装mysql-server就行了。
默认安装好后用netstat -na命令查看mysql的默认端口3306已经监听了,不过是坚定在本地回环地址127.0.0.1上的,这样别的机器就没法访问,所以我们要把这个地址改成服务器的真是地址,用ifconfig查看eth0的IP,我这里是192.168.50.35,用vi打开mysql的配置文件
sudo vi /etc/mysql/my.cnf
找到[mysqld]小节,这个文件类似windows下ini文件的格式,该小节下有一行如下
bind-address=127.0.0.1
把它改成
bind-address=192.168.50.35
其中192.168.50.35是服务器从DHCP上获取的IP,修改的时候注意格式和空格,人家以在等号前面后面是多少个空格就是多少个空格,是制表符就是制表符,其实我也不确定多个空格或者少个空格影响不影响。
然后如果有skip-networking一行的话改成# skip-networking,前面加#表示注释掉词句的意思。
输入如下命令重启mysql服务
/etc/init.d/mysql restart
现在ifconfig就可以看到监听192.168.50.35的3306端口了
然后就可以登录mysql了,用如下命令
mysql -u root -p
回车后输入密码(安装的时候设置的)进入mysql的提示符mysql>
输入如下回车
GRANT ALL ON *.* TO root@'%' IDENTIFIED BY 'password';
表示允许root用户在任何机器上登录和管理任何库,其中*.*可以换成foo.*,表示foo库下的任何东西,'password'是root的密码,'%'表示任何机器,以上命令是我后来总结的,不知道管不管用,应该管用的。我实验成功的语句是先创建个库,再给这个库授权,如下命令。
mysql> CREATE DATABASE foo;
mysql> GRANT ALL ON foo.* TO bar@'%' IDENTIFIED BY 'password';
记住mysql的每条语句是分号结束,回车后执行,退出mysql的命令是exit

以上主要参考如下链接
在ubuntu JeOS 7.10系统上安装和设置mysql
http://blog.chinaunix.net/u2/77682/showart_1154173.html
http://www.5dlinux.com/article/1/2007/linux_10186.html

How Do I Enable Remote Access To MySQL Database Server?
http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html

现在本地telnet 192.168.50.35 3306是通了,我们要管理mysql,还要下载MySQL Control Center,地址如下
http://www.newhua.com/soft/18822.htm
下载下来,装好后,新建一个mysql服务器连接,host输入192.168.50.35,用户名root,密码password,点connect会提示如下错误
#1251 Client does not support authentication protocol
这个问题官方有解释,如下
B.1.2.4. Client does not support authentication protocol
http://dev.mysql.com/doc/refman/5.1/en/old-client.html

具体操作如下,进入mysql命令,查看用户信息
SELECT * FROM mysql.user

可以看到目前只有一个root用户
然后执行以下语句
update mysql.user SET Password = OLD_PASSWORD('password') where Host = '%' AND User = 'root';
其中%是主机名,如果SELECT * FROM mysql.user是%,那里就填写%,如果是主机的IP就换成主机的IP,最终要执行该语句后有一行记录更改。
然后用一下命令刷新数据库。
FLUSH PRIVILEGES;
到此再用mysql cc就可以连接了。


四、用.net访问mysql
先下载适当版本的MySQL Connector/.NET,我的mysql是5.0,用以下连接下载
http://dev.mysql.com/downloads/connector/net/5.0.html
查看mysql版本的命令如下,注意大小写
mysql -V
下载下来后,引用MySql.Data.dll,引用MySql.Data.MySqlClient命名空间,然后以ADO的方式访问数据库就行了,我刚才用mysql cc在foo库下建立了一个users的表,里面有一个varchar的字段username,我们在这个表里添加一条记录,并显示出来,代码如下
using System;
using MySql.Data.MySqlClient;

namespace ConsoleTest
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            MySqlConnection conn = new MySqlConnection("server=192.168.50.35;user=root;password=password;database=foo");

            MySqlCommand command = new MySqlCommand("INSERT INTO users values('onlytiancai');", conn);
            conn.Open();
            command.ExecuteNonQuery();

            command = new MySqlCommand("SELECT username FROM users;", conn);
            string ret = command.ExecuteScalar().ToString();
            Console.WriteLine(ret);
            Console.ReadKey();
        }
    }
}

小节:.net+mysql的环境架设好了,更深入的了解mysql和linux就多看书,多看资料了,相信.net+mysql也是一个适合大多中小企业的不错的选择。

参考链接:

 

Linux服务器傻瓜式安装完全手册
http://os.yesky.com/lin/202/7525202_1.shtml
Linux系统内核有待提高的七个领域
http://os.yesky.com/lin/244/7693244.shtml
使用 Linux LiveCD
http://www.ibm.com/developerworks/cn/linux/l-livecd.html
KNOPPIX 简体中文版 使用和定制指南
http://www.maxidea.org/project/knoppix/doc/knoppix_custom_guide.html
Knoppix Linux 中文版
http://www.woodfox.net/glyoung/linux/knoppix-zh/
Ubuntu Linux 最小精简版 (Ubuntu JeOS)[ISO]
http://www.qdz.cc/download/qdz-softdown-398.html
Linux命令——入门
http://os.rdxx.com/Linux/LinuxRudiment/2008/12/217404499131.shtml
文件编辑器 vi
http://www.linuxsir.org/main/?q=node/206
MySQL 优化(一)
http://imysql.cn/2006_03_05_mysql_optimize_1
在Linux下安装和使用MySQL
http://www.yesky.com/187/1754687.shtml
深入浅出MySQL——数据库开发、优化与管理维护
http://book.csdn.net/bookfiles/667/
多任务下的数据结构与算法
http://book.csdn.net/bookfiles/65/

ubuntu下安装MySQL安装指南
http://www.lovelaozang.cn/show-678-1.html
在Red Hat Linux下安装MySQL
http://lovelaozang.cn/show-6745-1.html

转发 Ubuntu 最小精简版 只有151M
http://hi.baidu.com/flfxt/blog/item/154d86775756bc1fb151b96d.html
Ubuntu-JeOS 8.04.1 (Hardy Heron)
http://cdimage.ubuntu.com/jeos/releases/8.04/release/
Ubuntu 8.04.1 jeos的安装
http://blog.chinaunix.net/u2/66515/showart_1678388.html
虚拟机软件Vmware Workstation 5.0使用指南
http://www.winos.cn/articles/vmware5/vmware5.html

让你自己的邮件服务器在互联网上畅行无阻
http://www.cnblogs.com/ublue2006/archive/2008/12/23/1360247.html
JeOS安装一瞥
http://forum.ubuntu.org.cn/viewtopic.php?f=103&t=89602&start=0
Ubuntu 8.04.1 jeos的安装
http://www.91linux.com/html/linux_pub/ubuntu/20081204/14286.html

打造属于自己的ubuntu jeos(1)--安装及网络配置
http://www.blogjava.net/aoxj/archive/2008/04/18/194103.html
打造属于自己的ubuntu jeos(2)--安装基本软件及java开发环境
http://www.blogjava.net/aoxj/archive/2008/04/19/194184.html

在ubuntu JeOS 7.10系统上安装和设置mysql
http://blog.chinaunix.net/u2/77682/showart_1154173.html
http://www.5dlinux.com/article/1/2007/linux_10186.html

不错的ubuntu - sources.list源
http://xuming.net/2008/08/ubuntu-sources-list.html
cn99今天连不上了,我又找到一个比较快的源!
http://forum.ubuntu.org.cn/viewtopic.php?f=52&t=158755
Downgrading from Hardy to Gutsy?
http://ubuntuforums.org/archive/index.php/t-623058.html
Linux操作系统下Sudo命令的使用方法说明
http://www.builder.com.cn/2007/1127/656207.shtml

Ubuntu Linux下Java环境的搭建和Eclipse的安装(转)
http://blog.tongji.net/index.php/159663/viewspace-5621.html
How Do I Enable Remote Access To MySQL Database Server?
http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html

 Mysql wont start after adding bind-address to my.cnf
 http://ubuntuforums.org/showthread.php?t=296083
Mysql入门系列:安全网络访问mysql数据库服务器
http://tech.ddvip.com/2006-12/116755660917125.html
? 小火车深圳–>阳朔 ?
解决方案:phpMyAdmin无法登陆,#1251 Client does not support authentication protocol
http://www.v2op.com/blog/2008/04/解决方案phpmyadmin无法登陆,1251-client-does-not-support-authentication-protocol/

posted @ 2008-12-25 22:47 蛙蛙王子 Views(...) Comments(...) Edit 收藏