从零开始的Linux服务器使用(三)

这个章节我们将介绍安装网站的数据库以及远程管理数据库。

我们将使用的数据库是 mariaDB ,这是一个 MySql 的数据库的分支项目。不使用 MySql 的原因是因为需要配置相关的 yum 仓库源,默认的 yum 仓库是没有 MySql 的。

数据库管理工具将采用 HeidiSql ,一个免费开源的数据库管理软件

学习使用 Sql 之前,建议先学习 Sql 语句以及相关的概念。

准备

  • 下载 Herdisql 管理软件 (下载
  • 执行命令 yum install mariadb* -y 以安装数据库

开始配置

已经安装了数据库,但是不代表能立即使用数据库。我们要启动数据库的服务以打开数据库服务器。

1
2
3
4
# 打开数据库服务。
systemctl start mariadb
# 设置开机启动
systemctl enable mariadb

此时 mariaDB 已经能使用了。我们输入 mysql 进入 mysql Client 开始输入语句。

但是刚刚安装好的数据库是没有密码的,这也是一个不安全的元素,我们输入 exit;Ctrl + c 退出 mysql Client。

执行以下语句以初始化数据库 root 账户的密码。

1
mysqladmin -u root -p password [你想设置的密码]

此处还需要你输入 root 用户的原密码,但是一开始并没有直接 enter 就好。

然后我们再输入mysql,就会出现 ERROR 1045 (28000): Access denied for user 'root'@'localhost' 字样。我们需要使用 mysql -u root -p, 然后提示输入密码,此时输入密码是不可见长度的,不会显示输入了几个字符使用的 “ * “

输入正确之后我们就可以进入 mysql client。

配置远程登录

我们现在在 mysql client 中,输入 show grants; 命令查看当前用户的权限。

1
2
3
4
5
6
+----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost |
+----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*xxxxxxxxxxxxxxxxxxxxxxxxxxx' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION |
+----------------------------------------------------------------------------------------------------------------------------------------+

第一条语句就是权限语句,我们来具体剖析下这条语句干了什么。

  1. GRANT 是授权命令。

  2. ALL PRIVILEGES 是所有权限。

  3. ON *.* 是指在哪个数据库哪个表中,*.* 是指所有数据库中所有的表。

  4. TO ‘root’@’localhost’ 是指给某个用于在某处登录的时候,root 用户在 localhost 登录的时候。

  5. IDENTIFIED BY PASSWORD ‘*xxxxxxxxxxxxxxxxxxxxxxxxxxx’ 是通过什么来验证登录,后面的引号内的内容是 hash 过的密码,所以你看的时候设置并不是你原先设置的密码。

  6. WITH GRANT OPTION 仍然是权限赋值语句的一部分。

我们剖析完了整个构成,所以我们也写个赋值语句允许 root 用户可以在所有地方登录管理整个数据库。

1
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '[你需要设置的密码]' WITH GRANT OPTION

‘root’@’%’ 中的 localhost 已经不是 localhost 了,改成了 % 通配符。并且 IDENTIFIED BY 后面的内容也有变化,并不是所有地方登陆所使用的密码都是一样的,根据权限赋值语句去改变的。

那么我们现在就可以通过 Heidisql 去登录我们的数据库服务器并且查看数据和进行 sql 语句查询。

Heidisql 中 主机/IP 填写服务器的 IP 地址,用户名分别是 root 和你设置的密码。

排错

  • 无法连接数据库

请使用 端口扫描 尝试扫描服务器的 3306 端口,查看是否开放,如果未开放,请尝试打开防火墙和安全组的限制。

如果你发现本文章有不谨慎或者错误的地方,请通过邮件通知 wly19960911#gmail.com 联系我。如果需要转载的话,只需要指明出处。