你可以使用 mysql 命令与 MariaDB 进行交互。首先使用子命令 ping 确认你的服务是运行着的,在提示后输入密码:
1 2 3 4
$ mysqladmin -u root -p ping Enter password: mysqld is alive
为了易于读者理解,打开一个交互式的 MariaDB 会话:
1 2 3 4 5 6 7 8 9 10
$ mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. [...] Type'help;'or'\h'forhelp. Type'\c' to clear the current input statement.
这个实例的 mysql 数据库的最后一个表名为 USER。这个表包含了可以访问这个数据库的用户。当前里面只有一个 root 用户,但是你可以添加不同权限的用户,赋予它们查看、更新或创建数据的权限。你可以查看一个表的列首来了解一个 MariaDB 用户的所有属性:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
> SHOW COLUMNS IN USER; MariaDB [mysql]> SHOW COLUMNS IN USER; +-------------+---------------+------+-----+----------+ | FIELD | TYPE | NULL | KEY | DEFAULT | +-------------+---------------+------+-----+----------+ | Host | CHAR(60) | NO | PRI || | USER | CHAR(80) | NO | PRI || | Password | CHAR(41) | NO ||| | Select_priv | enum('N','Y') | NO || N | | Insert_priv | enum('N','Y') | NO || N | | Update_priv | enum('N','Y') | NO || N | | Delete_priv | enum('N','Y') | NO || N | | Create_priv | enum('N','Y') | NO || N | | Drop_priv | enum('N','Y') | NO || N | [...] 47 ROWS IN SET (0.001 sec)
创建一个新的用户
不论你是否需要一个普通的账号来管理数据库或者为计算机配置数据库(例如安装 WordPress、Drupal 或 Joomla时),在 MariaDB 中多建一个用户账号是很普遍的。你可以通过向 mysql 数据库的 USER 表中添加一个用户或使用 SQL 关键字 CREATE 来提示 MariaDB 创建一个 MariaDB 用户。使用 CREATE 来创建新用户会默认执行一些有用的方法,因此你不需要手动生成所有的信息:
你可以使用 SELECT 关键字来查看数据库表的字段和值。这本例中,你创建了一个名为 tux 的用户,因此查询 USER 表中的列:
1 2 3 4 5 6 7 8 9 10
> SELECT USER,host FROM USER; +------+------------+ | USER | host | +------+------------+ | root | localhost | [...] | tux | localhost | +------+------------+ 7 ROWS IN SET (0.000 sec)
为一个用户赋予权限
通过查看 USER 表列出的信息,你可以看到用户的状态。例如,新用户 tux 对这个数据库没有任何权限。使用 WHERE 语句你可以只查 tux 那一条记录。
1 2 3 4 5 6 7
> SELECT USER,select_priv,insert_priv,update_priv FROM USER WHERE USER='tux'; +------+-------------+-------------+-------------+ | USER | select_priv | insert_priv | update_priv | +------+-------------+-------------+-------------+ | tux | N | N | N | +------+-------------+-------------+-------------+
> SELECT USER,select_priv,insert_priv,update_priv FROM USER WHERE USER='tux'; +------+-------------+-------------+-------------+ | USER | select_priv | insert_priv | update_priv | +------+-------------+-------------+-------------+ | tux | Y | N | N | +------+-------------+-------------+-------------+