網站用戶行爲分析——在Ubuntu下安裝MySQL及其經常使用操做

安裝MySQL

  使用如下命令便可進行mysql安裝,注意安裝前先更新一下軟件源以得到最新版本:html

  sudo apt-get update          #更新軟件源
  sudo apt-get install mysql-server  #安裝mysql

      

  上述命令會安裝如下包:
    apparmor
    mysql-client-5.7
    mysql-common
    mysql-server
    mysql-server-5.7
    mysql-server-core-5.7
  所以無需再安裝mysql-client等。安裝過程會提示設置mysql root用戶的密碼,設置完成後等待自動安裝便可。默認安裝完成就啓動了mysql。mysql

  我在安裝MySQL的時候,經過終端輸入命令就直接安裝成功了,並無提示初始化密碼,考慮到後續操做可能會使用到密碼,因此頗有必要對密碼進行確認,參考了網上的資料,解決了這個問題:sql

  博客中建議打開/etc/mysql/debian.cnf文件,在這個文件中有系統默認給咱們分配的用戶名和密碼,經過這個密碼就能夠直接對MySQL進行操做了。在圖形界面中找到了這個文件,可是顯示文件是未知類型的,找不到合適的應用程序打開它。shell

  最後使用終端打開了這個文件,輸入下面的命令:數據庫

  sudo vim /etc/mysql/debian.cnf

      

  能夠看到這個文件中,已經給出了MySQL的默認用戶名和密碼,用戶名不是root,而是而是debian-sys-maint,密碼是:NxiAmT4Fc71G735eubuntu

  將用戶名和密碼記下,並將密碼修改成方便記憶的。終端輸入下面的命令:vim

  mysql -u debian-sys-maint -p 

  輸入剛纔的密碼能夠登陸成功,接下來要修改密碼。按照網上的資料,輸入下面選中的命令進行修改,出現了一個ERROR。服務器

      

  更換一個命令進行修改,出現Query OK,可是0 rows affected,懷疑密碼沒有修改爲功。網絡

      

  輸入命令:update mysql.user set authentication_string=password('141164') where user='root'and Host = 'localhost';app

      

  顯示:Query OK, 1 row affected, 1 warning (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 1,密碼修改爲功。        

  啓動和關閉mysql服務器:

  service mysql start
  service mysql stop  

  確認是否啓動成功,mysql節點處於LISTEN狀態表示啓動成功:

  sudo netstat -tap | grep mysql

  可是執行上面的命令,emmm:

        

  百度搜索:ubuntu netstat 命令找不到,找不到什麼相關的信息,按照相關搜索,搜索了netstat 命令找不到,出現一個CentOS找不到netstat的博文,成吧,CentOS也是Linux,試試看。

  博文中提示把net-tools包裝上就可以解決問題,具體是經過命令:yum install net-tools,可是:

      

  乖乖按照提示,經過apt安裝yum,目前爲止,對apt的理解就是一個軟件的安裝工具。安裝成功後,執行命令:yum install net-tools,提示須要以root身份執行此命令(忽然發現本身對root理解還不夠深入,又百度了一下root的意思:root權限,系統權限的一種,也叫根權限,與SYSTEM權限能夠理解成一個概念,但高於Administrator權限,root是Linux和unix系統中的超級管理員用戶賬戶,該賬戶擁有整個系統至高無上的權力,全部對象他均可以操做。得到root權限以後就意味着已經得到了系統的最高權限,這時候你能夠對系統中的任何文件(包括系統文件)執行全部增、刪、改、查的操做),而後執行sudo yum install net-tools,出現以下結果:
        

  在解決這個問題以前,決定先了解一下什麼是yum,度娘告訴我,yum的主要功能是更方便的添加/刪除/更新RPM包,它能自動解決包的倚賴性問題,它能便於管理大量系統的更新問題,結合如今在安裝MySQL後須要使用缺乏的net-tools,大概emmm,對yum有了個認識?但是RPM又特麼是啥,接着問度娘,度娘告訴我,RPM一種用於互聯網下載包的打包及安裝工具,因此yum就是用來管理下載包的打包及安裝工具的(能夠把yum想象成是一個碩大的軟件倉庫,裏面保存有幾乎全部經常使用的工具,而只須要說出所需的軟件包名稱,系統就會自動搞定一切。)。雖然仍是不太懂,可是仍是能夠硬着頭皮試試的,剛纔提示沒有已啓用的倉庫,那麼接下來就嘗試啓用倉庫。

  查了一中午資料,仍是沒能啓用倉庫,換個思路,其實啓用倉庫的目的就是經過yum安裝netstat,如今換別的方法在Ubuntu上安裝netstat:

  在Ubuntu Linux上安裝netstat,apt-get實際上是找不到netstat包的,須要用apt-get安裝net-tools。net-tools是Linux平臺NET-3網絡分發包,包括arp、hostname、ifconfig、netstat、rarp、route、plipconfig、slattach、mii-tool、iptunnel和ipmaddr工具。

  經過右面的命令在Ubuntu上安裝net-tools:apt-get install net-tools,安裝成功。  再次執行sudo netstat -tap | grep mysql,確認啓動成功。

      

  進入mysql shell界面:

  mysql -u root -p

  輸入上面的命令後出現了下面的問題:

      

  其實在在輸入密碼這一步的時候,用命令sudo vim /etc/mysql/debian.cnf打開存放數據庫密碼的文件,發現密碼並無修改爲功,就特麼很懵逼,而後將文件中的舊密碼拷貝到終端中登陸,就出現了ERROR 1689(28000),參考網上的博文:

  1.使用sudo apt-get install mysql-server安裝數據庫,在安裝的過程當中未設置密碼。

  2.在普通用戶下使用命令mysql -uroot -p鏈接數據庫,因爲沒有設置密碼,從而致使了錯誤:ERROR 1698 (28000): Access denied for user 'root'@'localhost

  解決辦法:在鏈接mysql數據庫的時候,使用命令sudo mysql -uroot -p鏈接數據庫,因爲沒有設置密碼,因此在須要輸入密碼的時候,直接按Enter鍵。

  經過上面的操做,成功進入了shell界面,可是以前密碼沒有設置成功是一個問題。

      

  解決利用sqoop導入MySQL中文亂碼的問題(能夠插入中文,但不能用sqoop導入中文)致使導入時中文亂碼的緣由是character_set_server默認設置是latin1,以下圖:

      

  能夠單個設置修改編碼方式set character_set_server=utf8;可是重啓會失效,建議按如下方式修改編碼方式。
  (1)編輯配置文件。sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
  (2)在[mysqld]下添加一行character_set_server=utf8。以下圖:

      

  進入vim,下面是經常使用的插入方法

  字符位置插入:

  •  i    在光標以前插入
  •  a   在光標以後追加

  行位置插入:

  •  A  在一行的結尾處追加
  •  I   在一行的開頭處插入
  •  o  在光標所在位置的下一行打開新行插入
  •  O  在光標所在位置的上一行打開新行插入

  本例中,具體的插入操做是,將光標移動到索要插入行的上一行,而後按小寫字母o,它的下一行會自動後退一行,此時輸入所要插入的文本,輸入完畢後,按ESC,而後輸入:wq,保存退出,插入完成。

  (3)重啓MySQL服務:service mysql restart
  (4)登錄MySQL,並查看MySQL目前設置的編碼:show variables like "char%";

  


MySQL經常使用操做

  注意:MySQL中每一個命令後都要以英文分號;結尾。

     每一個命令都是「mysql>」開頭,經過命令:sudo mysql -uroot -p,進入MySQL shell界面。  

      一、顯示數據庫
      mysql> show databases;
      MySql剛安裝完有兩個數據庫:mysql和test。mysql庫很是重要,它裏面有MySQL的系統信息,咱們改密碼和新增用戶,實際上就是用這個庫中的相關表進行操做。
      
      二、顯示數據庫中的表
      mysql> use mysql; (打開庫,對每一個庫進行操做就要打開此庫)
      Database changed
      mysql> show tables;
      

      三、顯示數據表的結構:
      describe 表名;

      四、顯示錶中的記錄:
      select * from 表名;
      例如:顯示mysql庫中user表中的紀錄。全部能對MySQL用戶操做的用戶都在此表中。
      select * from user;

      五、建庫:
      create database 庫名;
      例如:建立一個名字位aaa的庫
      mysql> create databases aaa;
      
       注意到這裏建立數據庫是使用create database而不是create databases。

      六、建表:
      use 庫名;
      create table 表名 (字段設定列表);
      例如:在剛建立的aaa庫中創建表person,表中有id(序號,自動增加),xm(姓名),xb(性別),csny(出身年月)四個字段
      use aaa;
      mysql> create table person (id int(3) auto_increment not null primary key, xm varchar(10),xb varchar(2),csny date);
      能夠用describe命令察看剛創建的表結構。
      mysql> describe person;
      
 
      七、增長記錄
      例如:增長几條相關紀錄。
      mysql>insert into person values(null,'張三','男','1997-01-02');
      mysql>insert into person values(null,'李四','女','1996-12-02');
       由於在建立表時設置了id自增,所以無需插入id字段,用null代替便可。
      可用select命令來驗證結果。
      mysql> select * from person;
      
 
      八、修改紀錄
      例如:將張三的出生年月改成1971-01-10
      mysql> update person set csny='1971-01-10' where xm='張三';
 
      九、刪除紀錄
      例如:刪除張三的紀錄。
      mysql> delete from person where xm='張三';
      
 
      十、刪庫和刪表
      drop database 庫名;
      drop table 表名;
      
      十一、查看mysql版本
      在mysql5.0中命令以下:
      show variables like ‘version’;
      或者:select version();
      
相關文章
相關標籤/搜索