• 网站用户行为分析——在Ubuntu下安装MySQL及其常用操作


    安装MySQL

      使用以下命令即可进行mysql安装,注意安装前先更新一下软件源以获得最新版本:

      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的时候,通过终端输入命令就直接安装成功了,并没有提示初始化密码,考虑到后续操作可能会使用到密码,所以很有必要对密码进行确认,参考了网上的资料,解决了这个问题:

      博客中建议打开/etc/mysql/debian.cnf文件,在这个文件中有系统默认给我们分配的用户名和密码,通过这个密码就可以直接对MySQL进行操作了。在图形界面中找到了这个文件,但是显示文件是未知类型的,找不到合适的应用程序打开它。

      最后使用终端打开了这个文件,输入下面的命令:

      sudo vim /etc/mysql/debian.cnf

          

      可以看到这个文件中,已经给出了MySQL的默认用户名和密码,用户名不是root,而是而是debian-sys-maint,密码是:NxiAmT4Fc71G735e

      将用户名和密码记下,并将密码修改为方便记忆的。终端输入下面的命令:

      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';

          

      显示: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界面。  

          1、显示数据库
          mysql> show databases;
          MySql刚安装完有两个数据库:mysql和test。mysql库非常重要,它里面有MySQL的系统信息,我们改密码和新增用户,实际上就是用这个库中的相关表进行操作。
          
          2、显示数据库中的表
          mysql> use mysql; (打开库,对每个库进行操作就要打开此库)
          Database changed
          mysql> show tables;
          

          3、显示数据表的结构:
          describe 表名;

          4、显示表中的记录:
          select * from 表名;
          例如:显示mysql库中user表中的纪录。所有能对MySQL用户操作的用户都在此表中。
          select * from user;

          5、建库:
          create database 库名;
          例如:创建一个名字位aaa的库
          mysql> create databases aaa;
          
          注意到这里创建数据库是使用create database而不是create databases。

          6、建表:
          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;
          
     
          7、增加记录
          例如:增加几条相关纪录。
          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;
          
     
          8、修改纪录
          例如:将张三的出生年月改为1971-01-10
          mysql> update person set csny='1971-01-10' where xm='张三';
     
          9、删除纪录
          例如:删除张三的纪录。
          mysql> delete from person where xm='张三';
          
     
          10、删库和删表
          drop database 库名;
          drop table 表名;
          
          11、查看mysql版本
          在mysql5.0中命令如下:
          show variables like ‘version’;
          或者:select version();
          
  • 相关阅读:
    redis命令参考(四) set集合
    redis命令参考(三) List列表相关
    redis命令参考(二)
    redis命令参考(一) SortedSet相关
    insert_into_on_dumplicate_key
    laravel深入分析
    开发中GBK+UTF8编码的处理
    ajax封装调用
    linux正则表达式的用法
    linux 如何保证使程序后台运行(nohup &)
  • 原文地址:https://www.cnblogs.com/baojianxin/p/9283736.html
Copyright © 2020-2023  润新知