美文网首页
Mariadb用户操作/数据库基本操作(二)

Mariadb用户操作/数据库基本操作(二)

作者: simuty | 来源:发表于2016-12-01 11:31 被阅读615次
    第一部分 基础与软连接
    启动数据库: `$ mysql.server start`
    关闭数据库: `$ mysql.server stop`
    链接数据库: `$ mysql -uroot -p`
    

    brew 安装位置

    /usr/local/Cellar/mariadb/10.1.19/
    

    设置软连接
    此时mysql 与 mysqladmin 所在的路径为

    /usr/local/Cellar/mariadb/10.1.19/bin/mysql
    /usr/local/Cellar/mariadb/10.1.19/bin/mysqladmin
    

    设置的具体步骤:

    $ ln -s /usr/local/Cellar/mariadb/10.1.19/bin/mysql /usr/bin
    $ ln -s /usr/local/Cellar/mariadb/10.1.19/bin/mysqladmin /usr/bin
    
    第二部分 数据库ROOT更改密码
    $ mysqladmim -u root -p flush-privileges password
    

    在此会提示输入旧密码, 但是当你输入新密码时不会显示在桌面上;

    $ mysqladmim -u root -p flush-privileges password
    Enter password: 
    New password: 
    Confirm new password: 
    
    
    第三部分 操作用户并设置权限

    3.0 查看表结构---DESC (Description)

    MariaDB [typedb] > DESC 表名
    
    

    3.1 罗列用户:

    > SELECT User, Host FROM mysql.user;
    
    +------+-----------------------+
    | User | Host                  |
    +------+-----------------------+
    | root | 127.0.0.1             |
    | root | ::1                   |
    |      | bwf-huanghaowei.local |
    | root | bwf-huanghaowei.local |
    |      | localhost             |
    | root | localhost             |
    +------+-----------------------+
    BWF-huanghaowei:~ 51Code$ 
    
    

    3.2 添加用户

    MariaDB [typedb]>  GRANT USAGE ON *.*
    TO 'username'@'host'
    IDENTIFIED BY 'password';
    

    以上参数:

    1. *username* – 你将创建的用户名, 
    2. **.**表示所有的数据库和所有表。
    3. *host* – 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,  如果想让该用户可以从*任意远程主机登陆*,可以使用**通配符---%**. 
    4. **password **该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登 陆服务器.
    

    实例代码

    MariaDB [typedb]>  GRANT USAGE ON *.*
    TO 'hhw'@'localhost'
    IDENTIFIED BY '1234zxc!';
    

    3.3 授权

    以下代码为hhw用户授予SELECT的权利,

    MariaDB [typedb]> GRANT SELECT ON *.* TO 'hhw'@'localhost';
    
    

    查询某个用户的权限:, 密码显示的是加密过后的密码:

    $ mysql -u root -p -e "SHOW GRANTS FOR 'test'@'localhost' \G"
     *************************** 1. row ***************************
         Grants for russell@localhost:
         GRANT SELECT ON *.* TO 'test'@'localhost'
         IDENTIFIED BY PASSWORD '*B1A8D5415ACE5AB4BBAC120EC1D17766B8EFF1A1'
    

    如果授予全部权利: 将SELECT 改为 ALL即可;

    3.3 删除账户及权限:

    >drop user 用户名@'%';
    >drop user 用户名@ localhost; 
    

    3.4 修改用户密码

    >  GRANT USAGE ON *.*
    TO 'hhw'@'localhost'
    IDENTIFIED BY '1234zxc!';
    

    3.5 切换用户, 先exit, 然后mysql -u 用户 -p;

    3.6 查看当前用户名: > SELECT USER();

    约定:

    1. MySQL语句`关键字不区分大小写`, 采用**大写**,数据库/表名/列明默认**采用小写**,容易区分;
    2. 使用简单且具有描述性的名称
    3. 数据库名/表名/列名 均采用小写/数字/下划线
    4. 关键字采用大写
    
    

    结束以上步骤时,屏幕基本已经不堪入目了,clear 完全没用; 肿么办?

    MariaDB [typedb]> SYSTEM CLEAR;
    
    

    数据库部分

    第一部分 开始创建数据库

    数据库可有多个表,每个表可有多行(或多条记录),每行可有多列 (域),用于存放每个项目的各方面信息。与分别建库不同,分别建表是一种惯用的策略;

    ####### 1.1 数据库结构
    1.1.1 数据库创建; SQL语句加上名称就可以了.

    MariaDB [(none)]> CREATE DATABASE students;
    Query OK, 1 row affected (0.00 sec)
    

    1.1.2 查看数据库

    > SHOW DATABASES;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | students           |
    | studyDB               |
    +--------------------+
    5 rows in set (0.00 sec)
    

    1.1.3 删除数据库

    MariaDB [(none)]> DROP DATABASE students;
    Query OK, 0 rows affected (0.00 sec)
    

    1.1.4 操作其中的数据库(使用其中的一个数据库)

    MariaDB [(none)]> USE studyDB;
    Database changed
    MariaDB [studyDB]> 
    

    ####### 1.2 表相关的内容
    1.2.1 创建完数据库, 接着在数据库中插入表, 创建students表, 五个域(列)的表,其中每列的信息以逗号分隔开来, 每一列,我们都指定了名称和类型,

    MariaDB [studyDB]> CREATE TABLE studets(
        -> stu_id INT AUTO_INCREMENT PRIMARY KEY,
        -> stu_name char(20),
        -> stu_sex char(2),
        -> stu_decription text);
    Query OK, 0 rows affected (0.03 sec)
    
    

    1.2.3 MYSQL关键字:
    PRIMARY KEY: 主键,又称主码(英语:primary key或unique key)。数据库表中对储存数据对象予以唯一完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。

    附录

    数据库一些常识

    1、char(n)和varchar(n)中括号中n代表字符的个数,并不代表字节个数,所以当使用了中文的时候(UTF8)意味着可以插入m个中文,但是实际会占用m*3个字节。
    2、同时char和varchar最大的区别就在于char不管实际value都会占用n个字符的空间,而varchar只会占用实际字符应该占用的空间+1,并且实际空间+1<=n。
    3、超过char和varchar的n设置后,字符串会被截断。
    4、char的上限为255字节,varchar的上限65535字节,text的上限为65535。
    5、char在存储的时候会截断尾部的空格,varchar和text不会。
    6、varchar会使用1-3个字节来存储长度,text不会。
    

    附加:

    前期预备知识点:

    052049040017593.png

    ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。

    1.命令行格式
    ln [参数][源文件或目录][目标文件或目录]
    2.硬链接(hard link)与软链接(symbolic link),

        软链接:
    1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
    2.软链接可以 跨文件系统 ,硬链接不可以
    3.软链接可以对一个不存在的文件名进行链接
    4.软链接可以对目录进行链接
        硬链接:
    1.硬链接,以文件副本的形式存在。但不占用实际空间。
    2.不允许给目录创建硬链接
    3.硬链接只有在同一个文件系统中才能创建
    

    3.参数

    必要参数:
    -b 删除,覆盖以前建立的链接
    -d 允许超级用户制作目录的硬链接
    -f 强制执行
    -i 交互模式,文件存在则提示用户是否覆盖
    -n 把符号链接视为一般目录
    -s 软链接(符号链接)
    -v 显示详细的处理过程
    选择参数:
    -S “-S<字尾备份字符串> ”或 “--suffix=<字尾备份字符串>”
    -V “-V<备份方式>”或“--version-control=<备份方式>”
    --help 显示帮助信息
    --version 显示版本信息
    
    
    /bin /sbin /usr/sbin /usr/bin 一般存放的内容
    1. /usr/bin: 一般存放在后期安装的一些软件的运行脚本。
    2. /sbin 下的命令属于基本的系统命令,如shutdown,reboot,用于启动系统,修复系统
    3. /bin下存放一些普通的基本命令,如ls,chmod等,这些命令在Linux系统里的配置文件脚本里经常用到。
    4. /usr/sbin存放的一些非必须的系统命令;
    

    参考链接
    MySQL字符数据类型char与varchar的区别
    [由MySQL中char和varchar效率想到的]
    (http://bbs.chinaunix.net/thread-1696053-1-1.html)
    MySQL之char、varchar和text的设计
    无痛SQL Schema的10条军规
    MySQL之权限管理

    更多精彩内容请关注“IT实战联盟”哦~~~


    IT实战联盟.jpg

    相关文章

      网友评论

          本文标题:Mariadb用户操作/数据库基本操作(二)

          本文链接:https://www.haomeiwen.com/subject/ahexmttx.html