您的位置:首页 > 运维架构 > Linux

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

2008-12-25 22:47 369 查看
摘要:.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/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: