乐趣区

关于mariadb:在Linux上安装MariaDBMySQL数据库最新版

前言

最近云服务器到期了,正好前几天购买了最新的树莓派,筹备在家里搭建一个小服务器用于编程测试。在配置 MariaDB 的时候发现和之前的形式有些许变动,当初整顿成这篇文章。

装置

这里模仿的是在近程服务器配置 MariaDB,如果你是在本地装置能够对下列步骤自行取舍。

具体步骤如下:

第一步 通过 SSH 登录近程服务器,具体步骤能够参考在 Mac 上通过 SSH 登录近程服务器。

第二步 通过 apt 或者 yum 的形式装置 MariaDB,这里以 apt 为例(用何种形式装置,取决于你的 Linux 零碎和你的应用习惯)

sudo apt-get update // 先对系统进行更新,不更新有时会呈现谬误
sudo apt-get install mariadb-server // 更新实现后,装置 mariadb-server

配置

执行下列代码进行相干配置

sudo mysql_secure_installation // 留神要应用管理员权限执行

首先提醒输出数据库 root 用户明码

  • Enter current password for root (enter for none):<–首次运行间接回车

设置明码

  • Set root password? [Y/n] <– 是否设置 root 用户明码,输出 y 并回车或间接回车
  • New password: <– 设置 root 用户的明码
  • Re-enter new password: <– 再输出设置的明码

其它配置

  • Remove anonymous users? [Y/n] <– 是否删除匿名用户
  • Disallow root login remotely? [Y/n] <–是否禁止 root 近程登录
  • Remove test database and access to it? [Y/n] <– 是否删除 test 数据库
  • Reload privilege tables now? [Y/n] <– 是否从新加载权限表

当然你也能够用上面的形式批改 root 明码:

$ sudo mysql -u root // 间接回车即可,呈现上面的文字,即为登录胜利

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 13
Server version: 10.1.37-MariaDB-0+deb9u1 Raspbian 9.0

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)]> use mysql;
MariaDB [mysql]> UPDATE user SET plugin='mysql_native_password' WHERE user='root'; // 身份认证插件
MariaDB [mysql]> UPDATE user SET password=PASSWORD('你的 root 的明码') WHERE user='root'; // 设置明码
MariaDB [mysql]> flush privileges; // 刷新配置权限
MariaDB [mysql]> exit; // 退出

须要留神的是,上述的 SQL 语句结尾肯定要加分号

而后重启服务

systemctl restart mariadb

配置 MariaDB 权限用户

咱们能够独自设置一个用户能具备足够 root 的权限执行所有操作,能够进行近程拜访。当然你也能够应用 root 用户进行配置,然而不倡议应用 root 用户。

留神以下步骤是应用 root 账户登录,并赋予新建用户权限的

// 以 root 账户登录数据库。回车后,输出数据库 root 账户的明码,即咱们在下面设置的明码
sudo mysql -u root -p

建设用户并赋予权限

MariaDB [(none)]> CREATE USER 'username'@'host' IDENTIFIED BY 'password';

示例:

CREATE USER 'jimmy'@'%' IDENTIFIED BY '123456';
参数 阐明
username 创立用户的用户名
host 指定该用户在哪个主机上能够登陆,本地用户可用 localhost,如果想让该用户能够从任意近程主机登陆,能够应用通配符 %
password 该用户的登陆密码,明码能够为空,如果为空则该用户能够不须要明码登陆服务器
GRANT ALL PRIVILEGES ON databasename.tablename TO 'username'@'host' IDENTIFIED BY '123456' WITH GRANT OPTION;

示例:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'jimmy'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
// 也可省略为
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'jimmy'@'%';
参数 阐明
privileges 用户的操作权限,如 SELECT , INSERT , UPDATE 等。如果要授予所的权限则应用 ALL
databasename 数据库名,如果要授予该用户对所有数据库和表的相应操作权限则可用 * 示意,如*.*
tablename 表名,如果要授予该用户对所有数据库和表的相应操作权限则可用 * 示意,如*.*

而后刷新上述设置

MariaDB [(none)]> flush privileges;

总示例:

$ mysql -u root -p
$ 输出明码
MariaDB [(none)]> CREATE USER 'jimmy'@'%' IDENTIFIED BY '123456';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'jimmy'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

配置近程拜访

留神:在旧版本上的是批改 /etc/mysql/my.cnf 文件相干内容的,在新版本上没有这个文件,新版本的服务器须要批改 /etc/mysql/mariadb.conf.d/50-server.cnf 这个文件。

$ sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
# 将 bind-address 这行正文掉
# 或者将 127.0.0.1 这个值改为  0.0.0.0
$ systemctl restart mariadb // 重启服务

其余

查看数据库服务器过程是是否运行:

service mariadb status

查看 MariaDB 运行的端口:

// 在数据库登录状态下
MariaDB [(none)]> SHOW GLOBAL VARIABLES LIKE 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
1 row in set (0.004 sec)

MariaDB [(none)]>

治理服务

显示一个服务的状态:systemctl status mariadb.service
在开机时启用一个服务:systemctl enable mariadb.service
在开机时禁用一个服务:systemctl disable mariadb.service
退出移动版