zoukankan      html  css  js  c++  java
  • C#远程访问linux(ubuntu)或windows的mysql数据库

     1、远程访问数据库大概模型

    2、mysql在win7、linux上如何设置:

    2.1、分配权限(linux和win7)

    进行mysql命令行,进行分配权限、执行

    GRANTALLPRIVILEGESON*.*TO'Lucy'@'192.168.1.102' IDENTIFIED BY'123'WITHGRANTOPTION;

    ALL PRIVILEGES分配所有的权限,如Select、Insert、Delete、Update、Drop、Create等等

    *.*是 数据库.数据库中的表

    'Lucy'是远程机子要访问本计算机的所需要的用户名(这个由mysql分配用户给远程机子,当然,还要通过一下步的3306端口

    '192.168.1.102'是远程机子的IP地址(这个由mysql指定远程机子哪个IP地址可以让访问)

    '123'是远程机子知道了用户,需要访问的用户密码(这个也是由mysql分配密码给远程机子)

    所以也可以归纳为:

    GRANTALLPRIVILEGESON 数据库.数据库表 TO'远程机用户名'@'远程机IP' IDENTIFIED BY'远程机用户密码'WITHGRANTOPTION;

    2.2、打开3306端口

    2.2.1、为什么要打开3306端口?

    因为防火墙问题,例如:

    IIS配置ASP后,局域网的机子不能访问本机的网页(如果默认端口是80),而关掉防火墙就可以。是因为你的80端口没有打开。

    而mysql的默认端口3306是默认没有打开的

    2.2.2、为什么我们远程访问SQL的时候,不用打开端口?

    因为SQL的端口是默认打开的,而你远程访问SQL数据库的时候,只要知道它的用户名、密码、端口号1433就行了。

    2.2.3、如何打开mysql的端口

    2.2.4、在win7上,只要在‘入站规则’上建立一个3306端口即可。

    控制面板=>管理工具=>高级安全的Windows防火墙=>入站规则

    然后新建规则=>选择‘端口’=>在‘特定本地端口’上输入一个‘3306’=>选择‘允许连接’=>选择‘域’、‘专用’、‘公用’

    =>给个名称,如:mysqlinput

    2.2.5、在linux的ubuntu上,对mysql的配置文件进行配置均可。

    按F3(打开命令行)=>输入"sudo vi /etc/mysql/my.cnf"(用vim打开)=> 

    # Instead of skip-networking the default is now to listen only on 

    # localhost which is more compatible and is not less secure.

    bind-address = 127.0.0.1

    注释掉bind-address均可,即#bind-address = 127.0.0.1,表示允许通过远程端口3306访问。

    =>重启mysql,即在命令行输入"sudo /etc/init.d/mysql restart"

    3、客户端

    (win7或ubuntu下载 MySQL ODBC 3.51 Driver,因为在ubuntu上有人用Mono搞C#,所以ubuntu也提进去)

    可以到http://dev.mysql.com/downloads/connector/odbc/3.51.html下载,安装在此不多说了。

    安装完后,在win7下怎么看你有了MySQL ODBC 3.51 Driver这个驱动程序呢?(Mono我就帮不了忙了,因为我没有使用过)

    控制面板=>管理工具=>数据源(ODBC)=>驱动程序

    4、C#方面

      这里就简单写一个对方存在的数据库(information_schema是默认存在的),这里用的是mysql

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;

    using System.Data;
    using System.Data.Odbc;

    namespace Help
    {
    public partial class WebForm2 : System.Web.UI.Page
    {
    protected void Page_Load(object sender, EventArgs e)
    {
    string strconn = "Driver={MySQL ODBC 3.51 Driver};Server=192.168.1.102;Database=information_schema;User=Lucy; Password=123;Option=3;chartset=utf8";
    string sql = "select * from CHARACTER_SETS";
    OdbcConnection myConnection = new OdbcConnection(strconn);
    OdbcCommand myCommand = new OdbcCommand(sql, myConnection);
    myConnection.Open();

    //DropDownList1.DataSource = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
    //DropDownList1.DataTextField = "name";
    //DropDownList1.DataValueField = "id";
    //DropDownList1.DataBind();
    OdbcDataAdapter sda = new OdbcDataAdapter();
    sda.SelectCommand = myCommand;
    DataSet ds = new DataSet();
    sda.Fill(ds);
    GridView1.DataSource = ds;
    GridView1.DataBind();

    myConnection.Close();
    }
    }
    }

    5、远程访问后,运行效果:

    6、总结

      6.1、操作系统上大部分有一些共性,其操作思想是可以移植的。

      6.2、如何看懂相应的配置文件说明是很重要的。

      6.3、命令行多少也得学一些。至少打开‘服务’的时候,输入services.msc,就可以打开服务了。

      6.4、抽象出自己可理解和实际相结合的模型是挺重要的。

      6.5、(举一反三)是不是只有C#行呢?VB、Java这些不行吗?那linxu下ruby、php去访问windows的SQL呢?具体情况,就只有实践能证明了。

  • 相关阅读:
    PAT Basic 1077 互评成绩计算 (20 分)
    PAT Basic 1055 集体照 (25 分)
    PAT Basic 1059 C语言竞赛 (20 分)
    PAT Basic 1072 开学寄语 (20 分)
    PAT Basic 1049 数列的片段和 (20 分)
    蓝桥杯BASIC-13 数列排序
    蓝桥杯入门——3.序列求和
    蓝桥杯入门——2.圆的面积
    蓝桥杯入门——1.Fibonacci数列
    树的总结(遍历,BST,AVL原型,堆,练习题)
  • 原文地址:https://www.cnblogs.com/yongfeng/p/1799905.html
Copyright © 2011-2022 走看看