• Linux下MySQL使用


    1. 简介

    笔者使用的系统是CentOS 7, 默认使用的是mariadb来替代MySQL, 使用上基本一致.

    2. 安装

    安装方法如下:

    # yum install mariadb mariadb-server mariadb-devel

    启动方案如下:

    # systemctl start mariadb
    # systemctl enable mariadb

    注意:
    安装完成后首次启动默认的root用户密码为空, 可以通过MySQL安全配置向导来进行安全方面的配置
    --> 
    mysql_secure_installation

    3. 连接

    $ mysql -u root –p
    Enter password:
    Welcome to the MariaDB monitor.  Commands end with ; or g.
    Your MariaDB connection id is 14
    Server version: 5.5.52-MariaDB MariaDB Server
    
    Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    MariaDB [(none)]>

    4. 命令

    // 显示数据库
    SHOW DATABASES;
    // 删除数据库
    DROP DATABASE <数据库名>;
    // 选择数据库
    USE <数据库名>;
    // 显示数据表, 在选择数据库之后使用
    SHOW TABLES;
    // 显示数据表的属性
    SHOW COLUMNS FROM 数据表;
    // 显示数据表的详细索引信息
    SHOW INDEX FROM 数据表;
    // 输出数据库管理系统的性能及统计信息
    SHOW TABLE STATUS LIKE [FROM db_name] [LIKE 'pattern']G;

    5. 用户

    MySQL用户存储在mysql 数据库中的 user 表, 直接向表中添加数据即添加MySQL用户
    以下为添加用户的的实例,用户名为admin,密码为admin123,并授权用户可进行 SELECT, INSERT 和 UPDATE操作权限

    MariaDB [mysql]> insert into user
        -> (host, user, password, select_priv, insert_priv, update_priv)
        -> VALUES('localhost', 'admin', PASSWORD('admin123'), 'Y', 'Y', 'Y');
    Query OK, 1 row affected, 4 warnings (0.00 sec)
    
    MariaDB [mysql]> flush privileges;
    Query OK, 0 rows affected (0.00 sec)
    
    MariaDB [mysql]> select host, user, password from user where user = 'admin';
    +-----------+-------+-------------------------------------------+
    | host      | user  | password                                  |
    +-----------+-------+-------------------------------------------+
    | localhost | admin | *01A6717B58FF5C7EAFFF6CB7C96F7428EA65FE4C |
    +-----------+-------+-------------------------------------------+
    1 row in set (0.00 sec)
    
    MariaDB [mysql]>

    提示:
    - 在添加用户时,请注意使用MySQL提供的PASSWORD()函数来对密码进行加密。
    - 在 MySQL5.7 中 user 表的 password字段名已换成了authentication_string。
    - 在注意需要执行flush privileges语句。 这个命令执行后会重新载入授权表

    另一种添加用户的方法为通过SQL的GRANT命令

    6. 操作

    下面的命令创建了一个数据库并从sql脚本中向该数据库导入表

    MariaDB > CREATE DATABASE test;
    Query OK, 1 row affected (0.00 sec)
    
    MariaDB > USE test;
    Database changed
    MariaDB [test]> source mysql.sql

    7. 编码

    笔者在实际使用过程中发现插入中文数据出现乱码, 于是关注一下MySQL的编码
    下面的命令可以查看当前编码方式

    MariaDB [(none)]> show variables like "char%";
    +--------------------------+----------------------------+
    | Variable_name            | Value                      |
    +--------------------------+----------------------------+
    | character_set_client     | utf8                       |
    | character_set_connection | utf8                       |
    | character_set_database   | latin1                     |
    | character_set_filesystem | binary                     |
    | character_set_results    | utf8                       |
    | character_set_server     | latin1                     |
    | character_set_system     | utf8                       |
    | character_sets_dir       | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+
    8 rows in set (0.00 sec)

    可以看到数据库和数据库服务器的默认编码为latin1, 这里需要将其改为utf8

    # vi /etc/my.cnf.d/server.cnf
    [mysqld]
    character-set-server=utf8
    
    # vi /etc/my.cnf.d/client.cnf
    [client]
    default-character-set=utf8
    
    # vi /etc/my.cnf.d/mysql-clients.cnf
    [mysql]
    default-character-set=utf8

    重启mysqld后再次查看编码

    MariaDB [(none)]> show variables like "char%";
    +--------------------------+----------------------------+
    | Variable_name            | Value                      |
    +--------------------------+----------------------------+
    | character_set_client     | utf8                       |
    | character_set_connection | utf8                       |
    | character_set_database   | utf8                       |
    | character_set_filesystem | binary                     |
    | character_set_results    | utf8                       |
    | character_set_server     | utf8                       |
    | character_set_system     | utf8                       |
    | character_sets_dir       | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+
    8 rows in set (0.00 sec)

    8. 配置

    MySQL配置文件为/etc/my.cnf, 具体配置方法参考<MY.CNF配置>

    参考:
    <MySQL教程>
    <21分钟MySQL入门教程>
    <彻底解决mysql中文乱码>

  • 相关阅读:
    累加和最大化
    SELECT子句顺序
    Linux命令入门教程
    求字符串前缀最长的连续重复子串(不重叠)
    王道机试指南题解(C/C++版)
    C++ Primer 第 5 版 习题参考答案
    第 16 章
    第 15 章
    第 14 章
    从jvm源码解读Java运行时的类加载
  • 原文地址:https://www.cnblogs.com/hzl6255/p/6993901.html
Copyright © 2020-2023  润新知