.Net Core在Ubuntu上操作MySql折騰實錄

小說:京東便利店怎么加盟作者:純戲順杜更新時間:2019-03-14字數:78703

“現在地小孩子真有趣,記得在我離開時,你還是一個孩子,現在,卻長得這么大了!”邢天豪的聲音在樓宇內出現,帶點豪邁地大笑道:“知道我為什么要來嗎?小子,你還嫩了點,想跟我斗,僅僅擁有強大地實力是不夠的,明白嗎?”

欠了很多錢 快走投無路了怎么辦

唐三失笑道:“你現在要能再有進步那才是奇跡呢。難道你不知道魂師到了一定級別后,必須擁有魂環后才能繼續修煉么?”
“無法滿足,用這個發泄?”張倩的眉頭緊鎖,聽著冷宛冰的話語她有些疑惑了,思考道。隨即她聽到了絲絲的吞吐聲,頓時她想到了是什么。

剛才在臺上獻唱的那位美女歌手是新來的,原來夜總會的臺柱子因為她老娘突然去世回家奔喪去了,老板不得已經熟人介紹,讓這位王小曼臨時頂替一陣子的,原本來他也沒抱多大的希望,沒曾想這頭一次演出,竟然還會引起如此大的反響,看樣子以后絕對也是個角兒。

.Net Core在Ubuntu上操作MySql折騰實錄


.Net Core 2.0 發布也這么久了,一直想著折騰著玩玩,無奈一直沒時間,這幾天準備開始好好學習下C#在跨平臺方面的應用,記錄下來以備自己以后回憶、學習。

本篇博客的主要內容:

MySql在Ubuntu上的安裝、基本的設置、Dapper(一個輕量級ORM)操作MySql實現基本CRUD。

?

前期準備工作:

  1. vmware workstation
  2. Ubuntu Server 16.04 (確保安裝SSH,為了可以使用遠程終端)
  3. XShell(遠程終端)+XFTP(遠程傳文件)
  4. VS 2017 或者VS Code
  5. .Net Core 2.0 SDK(這個VS 2017.4以上版本會自帶,如果是低版本或者VS Code的話需要去微軟官網下載)
  6. 一個可視化數據庫管理工具,博主用的是Navicat

在虛擬機上安裝好Ubuntu(這個就不詳細描述了,百度一下到處都是,另外注意下虛擬機最好設置為橋接模式,這樣會在你所在的局域網段中和你使用的電腦平級,便于操作),并且確保有SSH的安裝。

?

首先,安裝MySql,命令

  • sudo apt-get install mysql-server mysql-client

中間會有一次讓你輸入root密碼的界面,隨便輸入一個就好了,然后是登錄,命令

  • mysql -u root -p

如果出現了如下歡迎界面,就安裝好了。

?

接下來我們進行數據庫的設置,有如下內容:

  1. MySql默認設置為不可遠程訪問,我們需要把它設置為可以遠程訪問的,便于我們遠程管理。
  2. 同時把root賬號設置為可以遠程使用。另外注意下,生產環境中一般不會使用root賬號連接數據庫,而是創建一個普通的賬號,去管理某一個數據庫。不過這不是我們的重點,有興趣的可以自己去搜下相關內容。

設置MySql的遠程允許訪問,首先是需要改的是MySql的配置文件,

  • sudo?vi?/etc/mysql/mysql.conf.d/mysqld.cnf

然后出現的是vi編輯器的界面,(PS:想操作好Linux,學好Vi是必須滴)

?

?找到這行,注釋掉,保存并且退出。

進入MySql命令行模式,輸入如下指令,我要更改的用戶是root,密碼是123465

  • grant all privileges on *.* to "root"@"%" identified by "123456" with grant option;

當出現如下字樣是,即為修改成功

這個時候,重啟下MySql

  • sudo service mysql restart

數據庫方面的設置完成了,而Ubuntu之類的Linux系統為了安全性,一般是開啟了防火墻,像MySql使用3306端口需要打開端口以后才可以被外部訪問,這時我們使用Ubuntu操作ufw防火墻的命令

  • sudo ufw allow 3306

?

設置工作告一段落,我們來連接下試試

我這里使用了Navicat,保存后連接。

表示已經成功的連接上了數據庫。

接下來建立一個測試數據庫

然后接下來我們建立一個測試用的表

在Ubuntu上會有可能出現中文亂碼的情況,這里使用這個教程解決?http://blog.csdn.net/qq_32144341/article/details/51318390

好了,前期準備工作告一段落,接下來是我們的跨平臺程序部分。

?

首先,建立一個控制臺應用程序,注意選擇.Net Core 版本的

?

?然后使用Nuget安裝如下兩個程序包

  1. MySql.Data
  2. Dapper

上面那個是MySql連接驅動,下面這個是由StackOverFlow出品的一個開源輕量級ORM工具,感興趣的話還可以去GitHub去看下它的源碼

?安裝好以后,我們開始寫代碼,首先是建立一個實體類,需要和上面我們建立的Book表的字段對應一致

    public class Book
    {
        public string Id { get; set; }

        public string BookName { get; set; }

        public string Author { get; set; }

        public double Price { get; set; }

        public DateTime PublishTime { get; set; }
    }

?

然后來到我們的控制臺,編寫如下代碼

?

    class Program
    {
        static void Main(string[] args)
        {
            IDbConnection dbConn=new MySqlConnection("Server=192.168.200.200;Database=TestDb;Uid=root;Pwd=123456;sslmode=none;");

            Book newBook=new Book()
            {
                Id=Guid.NewGuid().ToString(),
                Author = "小明",
                BookName = "測試書名",
                Price = 10.5,
                PublishTime = DateTime.Now
            };

            string addSql =
                "INSERT INTO Book (Id,Author,BookName,Price,PublishTime) VALUES (@Id,@Author,@BookName,@Price,@PublishTime)";

            var addResult=dbConn.Execute(addSql, newBook);

            if (addResult == 1)
            {
                Console.WriteLine("Insert Success");
                Console.ReadKey();
            }           

    }

?

?

點擊發布,得到如下文件

?

?然后,我們的程序就要在Ubuntu下跑啦~~,這個時候,我們需要在Ubuntu上安裝一個運行環境,安裝.Net Core 2.0 For Linux,教程地址,https://www.microsoft.com/net/learn/get-started/linuxubuntu,基本沒啥坑,就不展開了,傻瓜式按順序執行一遍就好了,

當按照微軟官網的教程執行一遍后,執行命令

  • dotnet

若出現有相關歡迎或者說明字樣,就證明安裝成功了。

這個時候,我們在XFTP下,連接Ubuntu,在你的 /home/用戶名 下新建一個文件夾,然后把我們上一副圖中,發布好的文件都拖進去。然后切換回Linux命令行,使用cd命令,到剛剛拖過去的發布文件的文件夾,

?

然后使用命令

  • dotnet TestStudyMySql.dll

格式為:dotnet 你的可執行項目名.dll,這里注意下,Linux系統中是區分文件名大小寫的,不要搞錯了

?

如我們上面所寫的程序那樣,打印出了“Insert Success”字樣。這時我們去數據庫管理工具那里看一眼,

?

如圖,成功插入了。

?

剛才是CRUD的C,其實剩下的RUD用Dapper寫起來也十分的簡單,代碼如下

?

?

        //
            string existId = newBook.Id;  //查詢我們剛才插入的對象
            string selectSql = "SELECT * FROM Book WHERE Id=@Id";
            Book queryBook =
                dbConn.QueryFirstOrDefault<Book>(selectSql, new {Id = existId });
            Console.WriteLine("Query Success");
            Console.WriteLine($"This book"s price is {queryBook.Price}");
            Console.ReadKey();


            //
            queryBook.BookName = "西游記";
            string updateSql = "Update Book SET Id=@Id,Author=@Author,BookName=@BookName,Price=@Price,PublishTime=@PublishTime WHERE Id=@Id";
            var updateResult = dbConn.Execute(updateSql, queryBook);

            if (updateResult == 1)
            {
                Console.WriteLine("Update Success");
                Console.ReadKey();
            }

            //
            string deleteSql = "DELETE FROM Book WHERE Id=@Id";
            var deleteResult = dbConn.Execute(deleteSql, new { Id = existId });

            if (deleteResult == 1)
            {
                Console.WriteLine("DELETE Success");
                Console.ReadKey();
            }

?

?好了,寫了這么多,算是對C# on Linux 有個最基礎的入門了,接下來還會繼續研究在Linux編寫C#程序,共勉~

?

當前文章:http://www.hfcxdn.com/content/01-10/85253/content_3370493186.html

發布時間:2019-03-14 04:33:41

評多多網頁 金手指一個月能賺多少 網盟賺錢是真的嗎 手機注冊小任務 58手賺達人 因為害送錢少的成語 茶莊需要幾個人 開心消消樂掙錢提現金

淘無憂怎么賺傭金 錢咖自動搶任務軟件 貨返本金是怎么回事 業務園長檢查記錄 三維家一年多少錢 評論帝可以收徒賺錢嗎 手機掛機賺錢看新聞 淘寶客傭金率和比率 京東代領券賣券傭金群 微信的轉賬單號別人能查出來交易額嗎 臨時工去了就干活只做了四天有錢拿嗎 日周月共振指標系統 2018什么小吃最火爆最賺錢 安卓版賺錢軟件 打碼兔可以賺錢租賃公 聊天兼職平臺 馬云賺錢語錄 手機做任務賺賺錢 轉發文章賺錢刷量軟件

編輯:丁侯龍

我要說兩句: (0人參與)

發布
捕鱼达人之深海狩猎