最全的CentOS MariaDB入门教程

MariaDB是流行的跨平台MySQL数据库管理系统的分支,被认为是MySQL 的完全替代品。MariaDB是由Sun在Sun Microsystems合并期间被Oracle收购后,于2009年由MySQL的一位原始开发人员创建的。今天,MariaDB由MariaDB Foundation和社区贡献者维护和开发,同时腾讯云提供云数据库 MariaDB(TencentDB for MariaDB)让您轻松在云端部署、使用 MariaDB 数据库。

MariaDB将MySQL替换为CentOS 7存储库中的默认数据库系统。虽然将MySQL安装到CentOS 7并不困难,但是如果您只需要一个数据库,建议使用MariaDB进行官方支持,并且与其他存储库软件不兼容的可能性很小。

注意: 本教程是为非root用户编写的。需要有使用sudo的权限。

没有服务器的用户可以购买和使用腾讯云服务器或者直接在腾讯云实验室CentOS服务器直接上机体验安装MariaDB。

开始之前

  1. 要检查您的主机名:
   hostname
   hostname -f

第一个命令应显示您的短主机名,第二个命令应显示您的完全限定域名(FQDN)。

  1. 更新您的系统:
   sudo yum update

安装并启动MariaDB

sudo yum install mariadb-server

启用MariaDB以在启动时启动,然后启动该服务:

sudo systemctl enable mariadb
sudo systemctl start mariadb

默认情况下,MariaDB将绑定到localhost(127.0.0.1)。

注意

允许在公共IP上不受限制地访问MariaDB,但是您可以在/etc/my.cnf中通过修改bind-address参数来更改它侦听的地址。如果您决定将MariaDB绑定到公共IP,则应实施仅允许来自特定IP地址连接的防火墙规则。

保护MariaDB服务器

  1. 运行mysql_secure_installation脚本以解决默认MariaDB安装中的几个安全问题:
   sudo mysql_secure_installation

您可以选择更改MariaDB root密码,删除匿名用户帐户,禁用localhost之外的root登录,以及删除测试数据库。建议您对这些选项回答yes

使用MariaDB

与MariaDB交互的标准工具是mariadb客户端,它随mariadb-server包一起安装。MariaDB客户端通过终端使用。

Root登录

  1. 以root用户身份登录MariaDB:
   mysql -u root -p
  1. 出现提示时,输入当mysql_secure_installation脚本运行时分配的root密码。

然后,您将看到欢迎标题和MariaDB提示,如下所示:

   MariaDB [(none)]>
  1. 要为MariaDB提示生成命令列表,请输入\h。然后你会看到:
   List of all MySQL commands:
   Note that all text commands must be first on line and end with ';'
   ?         (\?) Synonym for `help'.
   clear     (\c) Clear the current input statement.
   connect   (\r) Reconnect to the server. Optional arguments are db and host.
   delimiter (\d) Set statement delimiter.
   edit      (\e) Edit command with $EDITOR.
   ego       (\G) Send command to mysql server, display result vertically.
   exit      (\q) Exit mysql. Same as quit.
   go        (\g) Send command to mysql server.
   help      (\h) Display this help.
   nopager   (\n) Disable pager, print to stdout.
   notee     (\t) Don't write into outfile.
   pager     (\P) Set PAGER [to_pager]. Print the query results via PAGER.
   print     (\p) Print current command.
   prompt    (\R) Change your mysql prompt.
   quit      (\q) Quit mysql.
   rehash    (\#) Rebuild completion hash.
   source    (\.) Execute an SQL script file. Takes a file name as an argument.
   status    (\s) Get status information from the server.
   system    (\!) Execute a system shell command.
   tee       (\T) Set outfile [to_outfile]. Append everything into given outfile.
   use       (\u) Use another database. Takes database name as argument.
   charset   (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
   warnings  (\W) Show warnings after every statement.
   nowarning (\w) Don't show warnings after every statement.
   
   For server side help, type 'help contents'
   
   MariaDB [(none)]>

创建一个新的MariaDB用户和数据库

  1. 在下面的示例中,testdb是数据库的名称,testuser是用户,password是用户的密码:
   create database testdb;
   create user 'testuser'@localhost identified by 'password';
   grant all on testdb.* to 'testuser' identified by 'password';

您可以通过在分配数据库权限时创建用户来缩短此过程:

   create database testdb;
   grant all on testdb.* to 'testuser' identified by 'password';
  1. 然后退出MariaDB:
   exit

创建示例表

  1. 重新登录testuser
   mysql -u testuser -p
  1. 创建一个名为customers的示例表。这将创建一个表,其中包含INT整数类型的客户ID字段(对于新记录自动递增,用作主键),以及用于存储客户名称的两个字段:
   use testdb;
   create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
  1. 查看新表:
   show tables;
  1. 然后退出MariaDB:
   exit

重置MariaDB Root密码

如果您忘记了root MariaDB密码,则可以重置密码。

  1. 停止当前的MariaDB服务器实例,然后使用不要求输入密码的选项重新启动它:
   sudo systemctl stop mariadb
   sudo mysqld_safe --skip-grant-tables &
  1. 使用MariaDB root帐户重新连接到MariaDB服务器:
   mysql -u root
  1. 使用以下命令重置root的密码。用强密码替换password
   use mysql;
   update user SET PASSWORD=PASSWORD("password") WHERE USER='root';
   flush privileges;
   exit
  1. 然后重启MariaDB:
   sudo systemctl start mariadb

优化MariaDB

MySQL Tuning Primer可用于优化MariaDB服务器。理想情况下,MariaDB实例应该在运行Tuner之前至少运行24小时。实例运行的时间越长,MySQL Tuner给出的建议就越好。

  1. 该脚本需要安装bc语言:
   sudo yum install bc
  1. 将MySQL Tuner下载到您的主目录并使其可执行:
   wget http://www.day32.com/MySQL/tuning-primer.sh
   chmod u+x tuning-primer.sh
  1. 运行它:
   sudo ./tuning-primer.sh

系统将询问您是否要针对与/var/lib/mysql/mysql.sock不同的MySQL socket 运行脚本。选择N。然后会询问您是否有登录信息。输入y,然后询问时输入凭据。

MySQL Tuning Primer是优化MariaDB服务器的一个很好的起点。

更多信息

有关此主题的其他信息,您可能需要参考以下资源,想学习更多如何使用MariaDB的用户请前往腾讯云+社区学习更多知识。


参考文献:《How to Install MariaDB on CentOS 7》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

SQLite这么娇小可爱,不多了解点都不行啊

简介 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统。它的设计目标是嵌入式的,目前Android和iOS的设备内置的都是SQLite数...

3748
来自专栏游戏杂谈

libcurl上传文件

libcurl参数很多,一不小心就容易遇到问题。曾经就遇到过一个很蛋疼的问题:libcurl断点下载>>

7151
来自专栏小特工作室

Navi.Soft31.代码生成器(含下载地址)

1系统简介 1.1功能简述 在Net软件开发过程中,大部分时间都是在编写代码,并且都是重复和冗杂的代码.比如:要实现在数据库中10个表的增删改查功能,大部分代码...

2269
来自专栏L宝宝聊IT

MFS分布式文件系统

2945
来自专栏黑泽君的专栏

day73_淘淘商城项目_06_solr索引库搭建 + solr搜索功能实现 + 图片显示等问题解决_匠心笔记

  solr是java开发的。   solr的安装文件。   推荐在Linux环境下使用Solr,需要安装环境Linux。   需要安装jdk。参考链接:htt...

4383
来自专栏女程序员的日常

ATmega8仿真——外部中断的学习

前面我们学习了ATmega8的I/O口作为通用数字输入/输出口来用时对LED数码管控制和扫描按键的应用; 但ATmega8多数的I/O口都是复用口,除了作为通用...

2531
来自专栏ASP.NET MVC5 后台权限管理系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统(999)-如何使用这个系统来开发?

前言 这篇文本讲述了这个框架的使用方式,及一些疑问的答疑,更加精准的使用这个框架来建立功能 经过几个版本的迭代,系统使用更加方便,代码更加简洁也更加的智能,...

3206
来自专栏运维小白

17.3 配置主

主从配置 - 主上操作 安装mysql 修改my.cnf,增加server-id=130和log_bin=aminglinux1 修改完配置文件后,启动或者重启...

1829
来自专栏吴伟祥

分布式锁的几种实现方式~ 转

目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一...

3781
来自专栏ASP.NET MVC5 后台权限管理系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统(61)-如何使用框架来开发

前言 这篇文本讲述了这个框架的使用方式,及一些疑问的答疑,更加精准的使用这个框架来建立功能 经过几个版本的迭代,系统使用更加方便,代码更加简洁也更加的智能,...

3146

扫码关注云+社区

领取腾讯云代金券