安装Mariadb

安装Mariadb

本章内容

Mariadb的三种安装方式:

1、程序包管理器管理的程序包

2、二进制格式的程序包:展开至特定路径,并经过简单配置后即可使用

3、源代码:编译安装

MariaDB在一台机器上的多实例实现


Centos7 下定义MariaDB源Yum安装最新版本的MariaDB

一、安装数据库前准备

  1. 查看 虚机系统版本

    [root@localhost ~]# cat /etc/centos-release
    CentOS Linux release 7.9.2009 (Core)
    
  2. 查看 虚机是否有自带MariaDB数据库

    [root@localhost ~]# rpm -qa | grep mariadb
    mariadb-libs-5.5.68-1.el7.x86_64
    
  3. 如果有MariaDB数据库,卸载自带的

    [root@localhost ~]# yum remove -y mariadb-libs-5.5.68-1.el7.x86_64
    # 再次查看
    [root@localhost ~]# rpm -qa | grep mariadb
    

二、添加yum源,安装数据库

  1. 自定义一个安装源,参考:https://downloads.mariadb.org/mariadb/repositories/

    [root@localhost ~]# cd /etc/yum.repos.d/
    [root@localhost yum.repos.d]# vi MariaDB.repo
    # 增加以下内容:
    # MariaDB 10.5 CentOS repository list - created 2021-04-18 09:02 UTC
    # http://downloads.mariadb.org/mariadb/repositories/
    [mariadb]
    name = MariaDB
    baseurl = http://yum.mariadb.org/10.5/centos7-amd64
    gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    gpgcheck=1
    
  2. 使用Yum 安装数据库 MariaDB

    # 使用Yum 安装
    [root@localhost ~]# sudo yum install -y MariaDB-server MariaDB-client
    # MariaDB-server:服务器端
    # MariaDB-client :客户端,用于连接并操作Mysql服务器
    # MariaDB-devel:包含开发首要的文件和一些静态库,可以不安装,如果你想要编译其它MySQL客户端,例如Perl模块,则需要安装该RPM包
    
  3. 启动数据库

    [root@localhost ~]# systemctl start mariadb       # 开启
    [root@localhost ~]# systemctl status mariadb      # 查看状态
    # 如果看到 :
    #   Active: active (running) since Sun 2021-04-18 20:59:13 CST; 7s ago
    # 启动成功。
    
  4. MariaDB安全配置(初始化)

    [root@localhost ~]# mysql_secure_installation
    
    # 输入root(mysql)的密码。默认没有,直接回车
    Enter current password for root (enter for none): 
    # 是否切换到unix套接字身份验证[Y/n]
    Switch to unix_socket authentication [Y/n] n
    # 是否设置root密码
    Change the root password? [Y/n] y
    # 如果选Y,就输入2次密码
      New password:
      Re-enter new password:
    # 是否删除匿名用户?(就是空用户),建议删除
    Remove anonymous users? [Y/n] y
    # 是否不允许远程root登录 y
    Disallow root login remotely? [Y/n] y
    # 是否删除test数据库
    Remove test database and access to it? [Y/n] y
    # 是否加载权限使之生效
    Reload privilege tables now? [Y/n] y
    

    注:若后续想修改安全设置,使用命令:

    mysql_secure_installation
    
  5. 测试登录

    [root@localhost ~]# mysql -uroot -p123456 <- 123456设的密码
    Welcome to the MariaDB monitor.  Commands end with ; or \g.
    Your MariaDB connection id is 4
    Server version: 10.5.9-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)]>
    MariaDB [(none)]>show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    +--------------------+
    3 rows in set (0.001 sec)
    
  6. 配置MairaDB的字符集

    编辑/etc/my.cnf

    [root@localhost ~]# vi /etc/my.cnf
    ......
    # !includedir /etc/my.cnf.d 前添加下面内容
    
    [mysqld]
    # 默认存储引擎
    default-storage-engine = innodb
    # 独立表空间
    innodb_file_per_table
    # 设置最大连接(用户)数
    max_connections = 4096
    # 排序规则 
    collation-server = utf8_general_ci
    # 服务器字符集
    character-set-server = utf8
    
    [mysqld_safe]
    log-error=/var/log/mariadb/mariadb.log
    pid-file=/var/rn/mariadb/mariadb.pid
    

    配置【my.cnf】后

    #
    # This group is read both by the client and the server
    # use it for options that affect everything
    #
    [client-server]
    
    #
    # include *.cnf from the config directory
    #
    [mysqld]
    default-storage-engine = innodb
    innodb_file_per_table
    max_connections = 4096
    collation-server = utf8_general_ci
    character-set-server = utf8
    
    [mysqld_safe]
    log-error=/var/log/mariadb/mariadb.log
    pid-file=/var/rn/mariadb/mariadb.pid
    !includedir /etc/my.cnf.d
    ~
    

    配置完成后 systemctl restart mariadb 重启服务。

三、用户基本操作

  1. 创建用户命令

    create user username@localhost identified by 'password';
    
  2. 新用户创建完成,但是此刻如果以此用户登陆的话,会报错,因为我们还没有为这个用户分配相应权限,分配权限的命令如下:

    # 授予username用户在所有数据库上的所有权限:
     
    GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password';
     
    #授予username只能执行 select 和 update 命令:
     
    GRANT SELECT, UPDATE ON wordpress.* TO 'username'@'localhost' IDENTIFIED BY 'password';
     
     
    格式:
        ALL PRIVILEGES :表示所有权限
        *.* : 表示所有 数据库 所有表
        'username'@'localhost' 表示从本地库主机登陆的username用户
        用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%'表示从任何地址连接。
        identified by 'password'  表示 username用户的密码
        with grant option  表示该用户可以将这些权限赋予其它用户
     
    例子:
        mysql> grant all privileges on *.*  to 'root'@'%' identified by '123456' with grant option;
    
  3. 如果此时发现刚刚给的权限太大了,如果我们只是想授予它在某个数据库上的权限,那么需要切换到root 用户撤销刚才的权限,重新授权:

    REVOKE ALL PRIVILEGES ON *.* FROM 'username'@'localhost';
    GRANT ALL PRIVILEGES ON wordpress.* TO 'username'@'localhost' IDENTIFIED BY 'password';
    ————————————————
    版权声明:本文为CSDN博主「WarmthYan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_33187206/article/details/86543588
    
  4. 每当调整权限后,通常需要执行以下语句刷新权限

    FLUSH PRIVILEGES;
    ​``````js
    权限列表:
    ALTER: 修改表和索引。
    CREATE: 创建数据库和表。
    DELETE: 删除表中已有的记录。
    DROP: 抛弃(删除)数据库和表。
    INDEX: 创建或抛弃索引。
    INSERT: 向表中插入新行。
    REFERENCE: 未用。
    SELECT: 检索表中的记录。
    UPDATE: 修改现存表记录。
    FILE: 读或写服务器上的文件。
    PROCESS: 查看服务器中执行的线程信息或杀死线程。
    RELOAD: 重载授权表或清空日志、主机缓存或表缓存。
    SHUTDOWN: 关闭服务器。
    ALL: 所有权限,ALL PRIVILEGES同义词。
    USAGE: 特殊的 "无权限" 权限。
    用 户账户包括 "username" 和 "host" 两部分,后者表示该用户被允许从何地接入。tom@'%' 表示任何地址,默认可以省略。还可以是 "tom@192.168.1.%"、"tom@%.abc.com" 等。数据库格式为 db@table,可以是 "test.*" 或 "*.*",前者表示 test 数据库的所有表,后者表示所有数据库的所有表。
    子句 "WITH GRANT OPTION" 表示该用户可以为其他用户分配权限。
    
  5. 远程工具测试

    用第三方客户端连接成功,MariaDB安装成功!

上一篇:搭建wordpress


下一篇:lnmp项目案例搭建(sersync, nginx, php, mariadb, web3台)