文章

MariaDB 数据库

Arch Linux 官方默认的 MySQL 分支 MariaDB

MariaDB

MariaDB 由 MySQL 的原始开发者 Michael “Monty” Widenius 在 2009 年创立,以应对 Oracle 收购 MySQL 后可能引发的担忧。MariaDB 是 MySQL 的一个开源分支,旨在保持与 MySQL 的兼容性,但由独立的社区维护和开发。

MariaDB 和 MySQL 在 SQL 语法、API、协议等方面高度兼容,大多数情况下,应用程序可以在不做或仅做少量修改的情况下在两者之间切换。MariaDB 和 MySQL 使用相同的数据文件格式,数据库文件可以在两者之间互相迁移。

随着时间的推移,MariaDB 引入了许多 MySQL 中没有的特性,例如一些新存储引擎、查询优化器改进以及更多的安全功能。自 2013 年起,MariaDB 就被 Arch Linux 当作官方默认的 MySQL 实现。

MariaDB wiki

安装和启动

使用包管理器安装

1
sudo pacman -S mariadb

启动服务

1
2
sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
systemctl start mariadb.service

配置

1
sudo mariadb -u root -p

添加新用户

创建一个密码为 some_passmonty 用户的示例,并赋予 monty 用户对 mydb 数据库的完全操作权限

1
2
3
4
MariaDB> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
MariaDB> GRANT ALL PRIVILEGES ON mydb.* TO 'monty'@'localhost';
MariaDB> FLUSH PRIVILEGES;
MariaDB> quit

设置好后可以以设置的用户名称进入 mariadb:

1
2
mariadb -u monty -p
Enter password:

配置默认监听的 IP 地址

Linux 中默认配置文件在 /etc/my.cnf.d/,在 server.cnf 中:

1
2
[mysqld]
bind-address = 127.0.0.1

启用自动补全

编辑 /etc/my.cnf.d/mysql-clients.cnf,在 mysql 下添加 auto-rehash

常用命令

全局操作一般需要以 root 用户身份登录 MariaDB。

  • 检查用户权限:

    1
    
      SELECT user, host FROM mysql.user WHERE user = 'shane';
    
  • 设置或更改用户密码:

    1
    
      SET PASSWORD FOR 'shane'@'localhost' = PASSWORD('new_password');
    
  • 创建新数据库

    1
    2
    3
    
      CREATE DATABASE mydatabase;
      -- 或
      mariadb -u username -p -e "CREATE DATABASE mydatabase;"
    
  • 导入 SQL 文件

    1
    
      mariadb -u username -p mydatabase < /path/to/yourfile.sql
    
  • 查看数据库中的表格

    1
    2
    
      USE mydatabase;
      SHOW TABLES;
    
  • 查看特定用户的权限:

    1
    
      SHOW GRANTS FOR 'shane'@'localhost';
    
  • 查看当前使用的端口号:

    1
    
      SHOW VARIABLES LIKE 'port';
    
  • 查看当前监听的 IP 地址:

    1
    
      SHOW VARIABLES LIKE 'bind_address';
    

未完待续…

本文由作者按照 CC BY 4.0 进行授权