• Centos7 使用yum安装MariaDB与MariaDB的简单配置与使用


    .mariadb的安装

    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。

    开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。

    MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

    方法1:阿里源下yum安装mariadb版本会旧一点

    Red Hat Enterprise Linux/CentOS 7.0 发行版已将默认的数据库从 MySQL 切换到MariaDB。

    安装命令
    
    # yum -y install mariadb mariadb-server
    
    安装完成MariaDB,首先启动MariaDB,两条命令都可以
    
     
    
    systemctl start mariadb
    
    #centos6命令
    
    service mariadb start

    方法2yum安装mariadbrepo仓库配置安装

    # 如果已经添加了阿里云的源又想安装最新版本的mariadb,那么少就使用以下步骤

    # 编辑创建mariadb.repo仓库文件
    
    vi /etc/yum.repos.d/MariaDB.repo
    
     
    
     
    
    添加repo仓库配置
    
    [mariadb]
    
    name=MariaDB
    
    baseurl=http://yum.mariadb.org/10.1/centos7-amd64
    
    gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    
    gpgcheck=1

    MariaDB 仓库地址添加好后,你可以通过下面的一行命令轻松安装 MariaDB

    yum install MariaDB-server MariaDB-client -y

    .MariaDB基本配置

    1.开启关闭与查看mariadb命令

    mariadb数据库的相关命令是:

    systemctl start mariadb  #启动MariaDB
    systemctl stop mariadb  #停止MariaDB
    systemctl restart mariadb  #重启MariaDB
    systemctl enable mariadb  #设置开机启动

    # 查看mariadb进程

    [root@node home]# netstat -ntlp |grep 3306
    
    tcp      0     0 0.0.0.0:3306      0.0.0.0:*         LISTEN      3931/mysqld

    2.初始化MariaDB 数据库

    在确认 MariaDB 数据库软件程序安装完毕并成功启动后请不要立即使用。为了确保数据 库的安全性和正常运转,需要先对数据库程序进行初始化操作。这个初始化操作涉及下面 5 个 步骤。

    设置 root 管理员在数据库中的密码值(注意,该密码并非 root 管理员在系统中的密 码,这里的密码值默认应该为空,可直接按回车键)

    设置 root 管理员在数据库中的专有密码。

    随后删除匿名账户,并使用 root 管理员从远程登录数据库,以确保数据库上运行的业

    务的安全性。

    删除默认的测试数据库,取消测试数据库的一系列访问权限。

    刷新授权列表,让初始化的设定立即生效。

    初始化命令:
    
    mysql_secure_installation
    
     
    
    首先是设置密码,会提示先输入密码
    
    Enter current password for root (enter for none):<–初次运行直接回车
    
    设置密码
    
    Set root password? [Y/n]  y<– 是否设置root用户密码,输入y并回车或直接回车
    
    New password: <– 设置root用户的密码
    
    Re-enter new password: <– 再输入一次你设置的密码
    
     
    
    其他配置
    
    Remove anonymous users? [Y/n]  y<– 是否删除匿名用户,回车
    
    Disallow root login remotely? [Y/n] n<–是否禁止root远程登录,回车,不过一般为y
    
    Remove test database and access to it? [Y/n] y<– 是否删除test数据库,回车
    
    Reload privilege tables now? [Y/n] y<– 是否重新加载权限表,回车
    
    初始化MariaDB完成,接下来测试登录
    
     
    
    # mysql -uroot -p    进入数据库(数据库中的操作命令和mysql是一样的)

    3.中文编码设置,utf8编码

    文件/etc/my.cnf
    
    vi /etc/my.cnf
    
     
    
    在[mysqld]标签下添加
    
    init_connect='SET collation_connection = utf8_unicode_ci'
    
    init_connect='SET NAMES utf8'
    
    character-set-server=utf8
    
    collation-server=utf8_unicode_ci
    
    skip-character-set-client-handshake
    
    进行查看就支持utf8了

    .mariadb的使用

    关于mariadb的使用其实是和mysql的语句完全是一样的

    1.开启关闭和设置开机启动

    mariadb数据库的相关命令是:

    systemctl start mariadb  #启动MariaDB
    
    systemctl stop mariadb  #停止MariaDB
    
    systemctl restart mariadb  #重启MariaDB
    
    systemctl enable mariadb  #设置开机启动

    2.设置密码建库建表

    # 修改mysql密码
    
    MariaDB [(none)]>  set password = PASSWORD('hsz123');
    
    Query OK, 0 rows affected (0.34 sec)
    
    # 创建tests数据库 如果加charset=utf8  表示指定utf8编码
    
    MariaDB [(none)]> create database test;
    
    Query OK, 1 row affected (0.00 sec)
    
    # 进入test数据库
    
    MariaDB [(none)]> use test;
    
    Database changed
    
    # 创建mytest数据表
    
    MariaDB [test]> create table mytest(id int,name char(32));
    
    Query OK, 0 rows affected (0.02 sec)
    
    # 查看数据表
    
    MariaDB [test]> show tables;
    
    +----------------+
    
    | Tables_in_test |
    
    +----------------+
    
    | mytest         |
    
    +----------------+
    
    1 row in set (0.00 sec)
    
    # 查看mytest数据表的表结构
    
    MariaDB [test]> desc mytest;
    
    +-------+----------+------+-----+---------+-------+
    
    | Field | Type     | Null | Key | Default | Extra |
    
    +-------+----------+------+-----+---------+-------+
    
    | id    | int(11)  | YES  |     | NULL    |       |
    
    | name  | char(32) | YES  |     | NULL    |       |
    
    +-------+----------+------+-----+---------+-------+
    
    2 rows in set (0.05 sec) 

    2.简单的增删改查

    # 给表增加两条数据
    
    MariaDB [test]> insert into mytest(id,name) values(1,"zero"),(2,"one");
    
    Query OK, 2 rows affected (0.35 sec)
    
    Records: 2  Duplicates: 0  Warnings: 0
    
    # 查看id,name 字段mytest的数据
    
    MariaDB [test]> select id,name from mytest;
    
    +------+------+
    
    | id   | name |
    
    +------+------+
    
    |    1 | zero |
    
    |    2 | one  |
    
    +------+------+
    
    2 rows in set (0.00 sec)
    
    # 删除mytest表中id=3 的数据
    
    MariaDB [test]> delete from mytest id=2;
    
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'id=2' at line 1
    
    MariaDB [test]> delete from mytest where id=2;
    
    Query OK, 1 row affected (0.00 sec)
    
    # 查看表的所有数据
    
    MariaDB [test]> select * from mytest;
    
    +------+------+
    
    | id   | name |
    
    +------+------+
    
    |    1 | zero |
    
    +------+------+
    
    1 row in set (0.01 sec)
    
    # 更新表id=1表的字段name=ten
    
    MariaDB [test]> update mytest set name=ten where id=1;
    
    ERROR 1054 (42S22): Unknown column 'ten' in 'field list'
    
    MariaDB [test]> update mytest set name="ten" where id=1;
    
    Query OK, 1 row affected (0.00 sec)
    
    Rows matched: 1  Changed: 1  Warnings: 0
    
     
    
    MariaDB [test]> select * from mytest;
    
    +------+------+
    
    | id   | name |
    
    +------+------+
    
    |    1 | ten  |
    
    +------+------+
    
    1 row in set (0.01 sec)

    3.关于用户及权限常用命令

    # 创建用户和密码
    
    MariaDB [test]> create user zero@'%' identified by 'zero';
    
    Query OK, 0 rows affected (0.01 sec)
    
     
    
     
    
    mysql使用grant命令对账户进行授权,grant命令常见格式如下
    
     
    
    grant 权限 on 数据库.表名 to 账户@主机名            对特定数据库中的特定表授权
    
    grant 权限 on 数据库.* to 账户@主机名              对特定数据库中的所有表给与授权
    
    grant 权限1,权限2,权限3 on *.* to 账户@主机名      对所有库中的所有表给与多个授权
    
    grant all privileges on *.* to 账户@主机名      对所有库和所有表授权所有权限
    
     
    
    #授予用户最大的权限,所有的权限
    
    grant all privileges on *.* to username@'%' identified by 'password';
    #授予zero用户,只有创建test数据库的权限
    
    MariaDB [test]> grant create on test.* to zero@'%' identified by 'zero';
    
    Query OK, 0 rows affected (0.00 sec)
    
    # 所以查询zero用户的数据库只有如下所示
    
    [root@node ~]# mysql -uzero -pzero
    
    Welcome to the MariaDB monitor.  Commands end with ; or g.
    
    Your MariaDB connection id is 6
    
    Server version: 5.5.60-MariaDB MariaDB Server
    
     
    
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    
     
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
     
    
    MariaDB [(none)]> show databases;
    
    +--------------------+
    
    | Database           |
    
    +--------------------+
    
    | information_schema |
    
    | test               |
    
    +--------------------+
    
    2 rows in set (0.00 sec)
    
     
    
    MariaDB [(none)]>
    #授予one创建的权限,对于所有的库表生效
    
    MariaDB [test]> grant create  on *.* to one@"%"  identified by 'one';
    
    Query OK, 0 rows affected (0.00 sec)
    
    # 所以查询数据库可以显示如下所示
    
    [root@node ~]# mysql -uone -pone
    
    Welcome to the MariaDB monitor.  Commands end with ; or g.
    
    Your MariaDB connection id is 7
    
    Server version: 5.5.60-MariaDB MariaDB Server
    
     
    
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    
     
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
     
    
    MariaDB [(none)]> show databases;
    
    +--------------------+
    
    | Database           |
    
    +--------------------+
    
    | information_schema |
    
    | mysql              |
    
    | performance_schema |
    
    | test               |
    
    | text               |
    
    +--------------------+
    
    5 rows in set (0.00 sec)
    
     
    
    MariaDB [(none)]>
    
    # 删除one用户
    
    MariaDB [test]> drop user one;
    
    Query OK, 0 rows affected (0.00 sec)
    
    # 刷新权限
    
    MariaDB [test]> flush privileges;
    
    Query OK, 0 rows affected (0.00 sec)

    4.数据库备份与恢复

    # mysqldump命令用于备份数据库数据
    
    ##备份所有数据库命令
    
    [root@node ~]# mysqldump -u root -p --all-databases > /tmp/db.dump
    
    Enter password:
    
    [root@node ~]# ll /tmp/db.dump
    
    -rw-r--r--. 1 root root 515562 Sep 13 23:00 /tmp/db.dump
    
    ##备份单个数据库命令
    
    [root@node ~]# mysqldump -u root -p text > /tmp/text.sql
    
    Enter password:
    
    [root@node ~]# ll /tmp/text.sql
    
    -rw-r--r--. 1 root root 1261 Sep 13 23:01 /tmp/text.sql
    
    ## 将备份的数据库导入
    
    [root@node ~]# mysql -uroot -p  text2< /tmp/text.sql
    
     
    
    # 删除数据库
    
    MariaDB [text2]> show databases;
    
    +--------------------+
    
    | Database           |
    
    +--------------------+
    
    | information_schema |
    
    | mysql              |
    
    | performance_schema |
    
    | test               |
    
    | text               |
    
    | text2              |
    
    +--------------------+
    
    6 rows in set (0.00 sec)
    
     
    
    MariaDB [text2]> drop database text;
    
    Query OK, 0 rows affected (0.00 sec)
    
     
    
    MariaDB [text2]> show databases;
    
    +--------------------+
    
    | Database           |
    
    +--------------------+
    
    | information_schema |
    
    | mysql              |
    
    | performance_schema |
    
    | test               |
    
    | text2              |
    
    +--------------------+
    
    5 rows in set (0.00 sec)
  • 相关阅读:
    安卓学习-activity-窗体调用和传参
    安卓学习-activity-PreferenceActivity
    安卓学习-activity-ExpandableListActivity
    安卓学习-activity-LauncherActivity
    安卓学习-界面-事件-AsyncTask
    安卓学习-界面-事件-handler
    安卓学习-界面-事件-Configuration
    安卓学习-界面-ui-菜单ActionBar
    安卓学习-界面-ui-普通菜单
    C++实现成绩管理模拟系统
  • 原文地址:https://www.cnblogs.com/hszstudypy/p/11518638.html
Copyright © 2020-2023  润新知