美文网首页
MySQL数据库安装,基本配置及使用

MySQL数据库安装,基本配置及使用

作者: sky92archangel | 来源:发表于2018-10-02 10:03 被阅读0次

    该记录安装部分仅限于RHEL系列和Debian系列系统


    2018-10-07 12_56_31-mysql logo_.png

    第一课 MYSQL 的安装配置


    安装

    yum install -y mysql-server-*
    
    apt-get install mysql-server mysql-client
    

    启动

    service mysql start
    service mysqld start
    
    service mysql restart
    service mysqld restart
    
    使用 systemctl 也可以
    

    配置

    root密码初始化
    mysqladmin -u root password 'root-new-password'
    

    登录root

    mysql -u root -p 
    
    
    chkconfig mysqld on
    

    配置文件

    /etc/my.cnf
    

    创建的数据库保存位置(可从配置文件内配置)

    /var/lib/mysql
    

    默认日志文静位置

    /var/log/my.log
    

    默认端口 3306

    查找端口是否监听
        
        netstat -tupln | grep 3306
    

    第二课 基本操作


    • mysql连接方法

      mysql -h localhost -u root -p

      mysql -h 数据库所在地址 -u 登录用户 -p

      默认是连接到本地

    • 进入sql后

      操作语句通常大写 也可以小写

      查看数据库版本 大多语句用分号结尾

        SELECT VERSION();   
      

      获取当前时间

        SELECT CURRENT_DATE ;
      

      两者合并

        SELECT VERSION(),CURRENT_DATE ;
      

      基本数学计算

        SELECT 4+4;
        SELECT 4*4;
      

      查看当前数据库

        SHOW DATABASES ;
      

      创建数据库

        CREATE DATABASE 数据库名;
      

      删除数据库

        DROP DATABASE 数据库名 ;
      

      切换当前使用的数据库

        USE 数据库名 ;
      

      创建数据库名称确定后无法重命名


    第三课 SQL语言


    第一节

    • 进入数据库 显示数据库信息

        SELECT * FROM 数据库名  ;
      
    • SQL 语句分类

        DDL-data delinttion language 定义语言 对数据库本身修改
      
            CREATE      创建
            ALTER       修改
            DROP        删除
        
        DML-data manipulation language  数据库维护语言 对数据库内容
      
            SELECT      选取
            INSERT      插入
            UPDATE      更新
            DELETE      删除
      
        DCL-data control language 控制语言 操控权限
      
            GRANT       给予一个用户的各种权限
            REVOKE      移除一个用户的各种权限
            
      
        TCL-transaction control
        
            COMMIT      保存数据操作
            SACEPOINT   为仿版标记一个事务点
            ROLLBACK    从最后一次commit恢复到最后状态
      

    第二节

    • 数据库管理

        创建数据库
      
            CREATE DATABASE 数据库名 ;
      
        删除数据库
        
            DROP DATABASE 数据库名 ;
      
        创建完成后 无法重命名数据库
      
    • 数据类型

        integer(size) int(size) smalint(size) tinyint(size) 储存整数
        
        decimal(size,d) numeric(size,d) 储存浮点
      
        char(size)  固定长度字符串
      
        varchar(size)   可变长度字符串
      
        date(yyyymmdd)存日期
      
    • 创建表格

        CREATE TABLE 表名称
      
        (
      
        列名称1 数据类型,
        列名称2 数据类型,
        列名称3 数据类型,
        ...
      
        )
      
        CREATE TABLE lc_course
      
        (
      
        id int,
        course_name varchar(50),
        course_length int(10),
        teacher varchar(50),
        category varchar(50)
      
        )
      
        SHOW TABLES ;
      
    • 查看表结构

        DESCRIBE 表名字 ;
        DESC 表名字 ;   (简写)
      
    • 删除表格

        DROP TABLE 表名字 ;
      
    • 修改表

        重命名表
      
            ALTER TABLE 原名 RENAME 新名;
      
        向表中添加一列 ; 
      
            ALTER TABLE 表名 ADD 新列 ;
            ALTER TABLE lc_course ADD link varchar(100) ;
      
        删除表中一列
      
            ALTER TABLE 表名 DROP 要删除的列名 ;
            ALTER TABLE lc_course DROP link varchar(100) ;
      
        修改列的数据类型
            
            ALTER TABLE 表名 MODIFY 列名 数据类型 ;
            ALTER TABLE lc_course MODIFY teacher varchar(100);
      
        重命名一个列
      
            ALTER TABLE 表名 CHANGE COLUMN 原名 新名 数据类型 ;
            ALTER TABLE lc_course  CHANGE COLUMN teacher  lecture varchar(100) ;
      

    第三节

    • 向表格插入数据 一条记录

        INSERT INTO 表名称 VALUES (值1,值2,...);
      
        或者
      
        INSERT INTO 表名称 (列1,列2) VALUES (值1,值2) ;
      
        例:
      
        INSERT INTO course VALUES(1,'install linux',32,'nash_su','Basic');
        
        INSERT INTO course  (id,course_name,category) VALUES (2,'GNOME','Basic') ;
      
    • 查询数据

        SELECT 列名1,列名2  FROM 表名称;
      
        SELECT * FROM course 表中所有信息 ; (查询所有数据)
      
    • 按条件查询数据

        SELECT 列名 FROM 表名称 WHERE 列名 运算符 值;
      
        例:
      
        SELECT * FROM course WHERE course_name='GNOME' ;
      
        SELECT * FROM course WHERE course_length > 10 ;
      
    • 支持的运算符

        <> 不等于
        <=
        >=
        BETWEEN     指定范围
        LIKE        某种模式搜索
      
    • 从表格中删除记录

        DELETE FROM 表名 WHERE 列名 运算符 值 ;
        
        DELETE * FROM 表名 ;(删除表中所有信息)
      
        例:
      
        DELETE FROM course  WHERE id = 1 ;
      
    • 更新表中记录

        UPDATE 表名 SET 列名=新值 WHERE 列名=值 ; 
      
        UPDATE course SET lecture='Lee' WHERE id=3 ; 
      

    第四节

    • 删除返回结果重复项 返回结果唯一化

        SELECT DISTINCT 列名 FROM 表名; 
      
        例:
      
        SELECT DISTINCT lecture FROM course; 
      
    • 使用WHERE的逻辑组合

        SELECT * FROM 表名 WHERE 条件1 AND 条件2 ;
        SELECT * FROM 表名 WHERE 条件1 OR 条件2 ;
      
        例:
      
        SELECT * FROM course WHERE lecture='nash_su' AND category='Adv';
      
    • 对查询结果排序

        SELECT * FROM 表名称 ORDER BY 列名 ;     (正序)
        SELECT * FROM 表名称 ORDER BY 列名 DESC;     (倒序)
      

    第七课 SQL用户


    • 默认只有一个root用户

    • 默认保存于mysql保存用户信息 mysql数据库user表中

      创建新用户

        CREATE USER 用户名 IDENTIFIED BY '密码';
        创建后不能登录  因为没有初始化权限
      

      删除用户

        DROP USER 用户名
      

      重命名用户

        RENAME USER 原用户名 TO 新用户名 ;
      

      修改用户密码

        SET PASSWORD = PASSWORD ('新密码') ;
      

      修改指定用户密码:

        SET PASSWORD FOR 用户名 = PASSWORD('新密码');
      

    第八课 权限系统


    1 检查用户是否连接诶
    
    2 是否有执行动作的权限
    
    
    层级:
    
        全局
    
        数据库
    
        表
    
        列
    
        子程序层级
    
    
    通过GRANT 授予权限 REVOKE 撤销权限
    
    • 授予一个用户权限:

        GRANT ALL PRIVILEGES ON 层级 TO 用户名@主机(远程来源) IDENTIFIED BY 密码 ;
      
        例如:
        全局授权
        GRANT ALL PRIVILEGES ON *.* TO 'nash_su'@'%' IDENTIFIED BY 'linuxcast' ;
        
        数据库授权
        GRANT ALL PRIVILEGES ON linuxcast.* TO 'nash_su'@'%' IDENTIFIED BY 'linuxcast' ;
      
    • 撤销用户权限

        REVOKE ALL PRIVILEGES FROM 用户名 ;
      
    • 授权主机 连接来源

        所有主机    %
        精确的域名或IP    www.linuxcast.net 或 192.168.1.1
        使用*通配符  *.linuxcast.net
        指定网段    192.168.1.0/255.255.255.0
      
    • 最后 刷新权限

        FLUSH PRIVILEGES ;
      

    第九课 备份还原


    使用自带的mysqldump命令    
    
    • 备份数据库

        mysqldump -u root -p 数据库名 > 备份文件.sql
      
        产生的sql为通用数据库格式
      
    • 还原数据库

        mysql -u root -p 数据库名 < 备份文件.sql
        都是使用了重定向
      

    第十课 数据库编码


    在定义数据库时就需确定使用的编码
    
    如UTF8 GB2312 Big5 Latin
    
    
    1 不同编码 占用空间不同
    2 数据库与客户端通讯
    
    • MYSQL默认编码是Latin1

        character set : latin1
        collation : latin1_swedish_ci
      

      可以通过命令查看MYSQL支持的编码

        SHOW CHARACTER SET ;
      
        常用UTF8(万国) GB2312(简体) Big5(繁体) Latin
      
        最好使用UTF8 高兼容
      

      查看当前编码

        SHOW VARIABLES LIKE 'character_set%' ;
        
        SHOW VARIABLES LIKE 'collation%' ;
      

      创建数据库的时候可以指定使用的编码

        CTEATE DATABASE linuxcast 
            DEFAULT CHARACTER SET utf8
            DEFAULT COLLATE utf8_general_ci ;
      

      也可以通过以下命令修改一个数据库的编码 (可能出现乱码,不常用)

        ALTER DATABASE linuxcast CHARACTER SET utf8 COLLATE utf8_general_ci ;
      

      指定创建的默认编码

        修改配置文件
      
        [client]
        default-character-set=utf8
        [mysql]
        default-character-set=utf8
        [musqld]
        default-character-set=utf8
        collation-server = utf8_unicode_ci
        init-connect='SET NAMES utf8'
        character-set-server = utf8
      

      修改后 重启服务 再次查看

        SHOW VARIABLES LIKE 'character_set%' ;
      

    相关文章

      网友评论

          本文标题:MySQL数据库安装,基本配置及使用

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