本文主要内容:在 Ubuntu 20.04 上安装、保护、使用 MariaDB 和 PyMySQL。

本系列的相关文章:

在 Ubuntu 安装 MariaDB

本文的主要参考内容来自:https://cloud.tencent.com/developer/article/1631666,以下步骤目前亲测可用。MariaDB 是一个开源的关系型数据库管理系统,向后兼容,可替代 MySQL。MariaDB 是由 MySQL 的一些原开发者和很多社区成员共同开发的。

前提条件

拥有 Ubuntu 服务器的管理权限,或者以 root 身份 或者以拥有 sudo 权限的用户身份登录系统。

在 Ubuntu 上安装 MariaDB

一旦安装完成,MariaDB 服务将会自动启动。 想要验证数据库服务器是否正在运行,输入:

输出将会显示服务已经启用,并且正在运行。

保护 MariaDB

MariaDB 服务器有一个脚本叫做mysql_secure_installation用来提高数据库服务器安全。

不带参数运行脚本:

脚本将会提示输入 root 密码:

因为没有设置 root 密码,仅仅输入回车”Enter”。在下一个提示中,会被问到是否 MySQL root 用户设置密码:

输入n。在 Ubuntu 上, MariaDB 用户默认使用auth_socket进行鉴权。这个插件会检查启动客户端的本地系统用户是否和指定的 MariaDB 用户名相匹配。如果输入Y,详见本文最后的错误排除。

下一步,将会被要求移除匿名用户,限制 root 用户访问本地机器,移除测试数据库,并且重新加载权限表。这里都填Y

以 root 身份登录

想要在终端命令行和 MariaDB 服务器进行交互,使用mysql客户端工具或者MariaDB。这个auth_socket插件将会通过 Unix socket 文件验证用户来连接localhost。这就意味着不能通过提供密码来验证 root。想要以 root 用户名登录 MariaDB 服务器,输入:

出现 MariaDB shell,就像下面一样:

如果想使用第三方程序,例如 phpMyAdmin ,以 root 身份登录MariaDB 服务器,有两个选择。

第一个是将鉴权方法从auth_socket修改为mysql_native_password(详见本文最后的错误排除):

(推荐)第二个是创建一个管理员用户,可以访问所有的数据库:

可以将这个管理员用户命名为任何想要的名字,但是请确保使用强密码。

安装 PyMySQL

安装 PyMySQL 以在 Python 中使用 MariaDB:

数据库和数据表(创建、修改、删除)

错误排除

下方的内容参考来源为:https://blog.csdn.net/jlu16/article/details/82809937

插入数据出错时:当通过root用户登录到 MySQL 数据库时,得到 ERROR 1698 (28000): Access deniedfor user ‘root’@‘localhost’ 的错误提示。

原因是因为在最近的Ubuntu安装(当然也可能是其他安装)中,MySQL默认使用了 UNIX auth_socket plugin 插件。简单来说这意味着当 db_users 使用数据库时,将会通过系统用户认证表进行认证。可以通过下面的命令看看 root 用户是否设置成了这样:

其中 root 用户在使用auth_socket插件。而我们设置 root 用户使用mysql_native_password插件。

类似文章

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注